From 320748f02dbc71af0eeb398d1f9bcb8800bb9c04 Mon Sep 17 00:00:00 2001
From: Liz Looney
Date: Fri, 14 Mar 2025 23:50:21 -0700
Subject: [PATCH] Updated generated blocks to fix problem with python class
names.
---
.../generated/class_hal.AddressableLEDData.ts | 2 +-
.../generated/class_hal.CANStreamMessage.ts | 2 +-
src/blocks/generated/class_hal.ControlWord.ts | 2 +-
.../generated/class_hal.JoystickAxes.ts | 2 +-
.../generated/class_hal.JoystickButtons.ts | 2 +-
.../generated/class_hal.JoystickDescriptor.ts | 2 +-
.../generated/class_hal.JoystickPOVs.ts | 2 +-
src/blocks/generated/class_hal.MatchInfo.ts | 2 +-
.../class_hal.PowerDistributionFaults.ts | 2 +-
...class_hal.PowerDistributionStickyFaults.ts | 2 +-
.../class_hal.PowerDistributionVersion.ts | 2 +-
.../class_hal.REVPHCompressorConfig.ts | 2 +-
src/blocks/generated/class_hal.REVPHFaults.ts | 2 +-
.../generated/class_hal.REVPHStickyFaults.ts | 2 +-
.../generated/class_hal.REVPHVersion.ts | 2 +-
src/blocks/generated/class_hal.SimBoolean.ts | 6 +-
src/blocks/generated/class_hal.SimDevice.ts | 20 +-
src/blocks/generated/class_hal.SimDouble.ts | 8 +-
src/blocks/generated/class_hal.SimEnum.ts | 6 +-
src/blocks/generated/class_hal.SimInt.ts | 8 +-
src/blocks/generated/class_hal.SimLong.ts | 8 +-
src/blocks/generated/class_hal.SimValue.ts | 2 +-
.../class_hal.simulation.NotifierInfo.ts | 2 +-
.../generated/class_hal.simulation.SimCB.ts | 2 +-
.../class_hal.simulation.SimValueCB.ts | 2 +-
.../generated/class_wpilib.ADIS16448_IMU.ts | 62 +++---
.../generated/class_wpilib.ADIS16470_IMU.ts | 52 ++---
.../class_wpilib.ADXL345_I2C.AllAxes.ts | 2 +-
.../generated/class_wpilib.ADXL345_I2C.ts | 20 +-
.../class_wpilib.ADXL345_SPI.AllAxes.ts | 2 +-
.../generated/class_wpilib.ADXL345_SPI.ts | 18 +-
.../generated/class_wpilib.ADXL362.AllAxes.ts | 2 +-
src/blocks/generated/class_wpilib.ADXL362.ts | 20 +-
.../generated/class_wpilib.ADXRS450_Gyro.ts | 20 +-
.../class_wpilib.AddressableLED.LEDData.ts | 12 +-
.../generated/class_wpilib.AddressableLED.ts | 14 +-
src/blocks/generated/class_wpilib.Alert.ts | 14 +-
.../class_wpilib.AnalogAccelerometer.ts | 12 +-
.../generated/class_wpilib.AnalogEncoder.ts | 18 +-
.../generated/class_wpilib.AnalogGyro.ts | 32 +--
.../generated/class_wpilib.AnalogInput.ts | 46 ++--
.../generated/class_wpilib.AnalogOutput.ts | 10 +-
.../class_wpilib.AnalogPotentiometer.ts | 8 +-
.../generated/class_wpilib.AnalogTrigger.ts | 26 +--
.../class_wpilib.AnalogTriggerOutput.ts | 14 +-
.../class_wpilib.BuiltInAccelerometer.ts | 12 +-
src/blocks/generated/class_wpilib.CAN.ts | 24 +--
src/blocks/generated/class_wpilib.CANData.ts | 2 +-
.../generated/class_wpilib.CANStatus.ts | 2 +-
src/blocks/generated/class_wpilib.Color.ts | 12 +-
.../generated/class_wpilib.Color8Bit.ts | 14 +-
.../generated/class_wpilib.Compressor.ts | 26 +--
src/blocks/generated/class_wpilib.Counter.ts | 68 +++---
src/blocks/generated/class_wpilib.DMC60.ts | 42 ++--
.../generated/class_wpilib.DSControlWord.ts | 22 +-
.../generated/class_wpilib.DataLogManager.ts | 2 +-
.../class_wpilib.DigitalGlitchFilter.ts | 24 +--
.../generated/class_wpilib.DigitalInput.ts | 16 +-
.../generated/class_wpilib.DigitalOutput.ts | 32 +--
.../generated/class_wpilib.DigitalSource.ts | 10 +-
.../generated/class_wpilib.DoubleSolenoid.ts | 20 +-
.../generated/class_wpilib.DriverStation.ts | 8 +-
.../generated/class_wpilib.DutyCycle.ts | 14 +-
.../class_wpilib.DutyCycleEncoder.ts | 32 +--
src/blocks/generated/class_wpilib.Encoder.ts | 46 ++--
src/blocks/generated/class_wpilib.Field2d.ts | 14 +-
.../generated/class_wpilib.FieldObject2d.ts | 12 +-
src/blocks/generated/class_wpilib.I2C.ts | 20 +-
.../class_wpilib.IterativeRobotBase.ts | 66 +++---
src/blocks/generated/class_wpilib.Jaguar.ts | 42 ++--
src/blocks/generated/class_wpilib.Joystick.ts | 114 +++++-----
.../class_wpilib.LEDPattern.LEDReader.ts | 4 +-
.../generated/class_wpilib.LEDPattern.ts | 46 ++--
.../generated/class_wpilib.LiveWindow.ts | 8 +-
.../generated/class_wpilib.Mechanism2d.ts | 8 +-
.../class_wpilib.MechanismLigament2d.ts | 20 +-
.../class_wpilib.MechanismObject2d.ts | 4 +-
.../generated/class_wpilib.MechanismRoot2d.ts | 6 +-
.../class_wpilib.MotorControllerGroup.ts | 18 +-
.../generated/class_wpilib.MotorSafety.ts | 20 +-
.../generated/class_wpilib.NidecBrushless.ts | 38 ++--
src/blocks/generated/class_wpilib.Notifier.ts | 12 +-
.../class_wpilib.PS4Controller.Axis.ts | 2 +-
.../class_wpilib.PS4Controller.Button.ts | 2 +-
.../generated/class_wpilib.PS4Controller.ts | 194 ++++++++---------
.../class_wpilib.PS5Controller.Axis.ts | 2 +-
.../class_wpilib.PS5Controller.Button.ts | 2 +-
.../generated/class_wpilib.PS5Controller.ts | 194 ++++++++---------
src/blocks/generated/class_wpilib.PWM.ts | 32 +--
.../class_wpilib.PWMMotorController.ts | 42 ++--
.../generated/class_wpilib.PWMSparkFlex.ts | 42 ++--
.../generated/class_wpilib.PWMSparkMax.ts | 42 ++--
.../generated/class_wpilib.PWMTalonFX.ts | 42 ++--
.../generated/class_wpilib.PWMTalonSRX.ts | 42 ++--
src/blocks/generated/class_wpilib.PWMVenom.ts | 42 ++--
.../generated/class_wpilib.PWMVictorSPX.ts | 42 ++--
.../class_wpilib.PneumaticHub.Faults.ts | 4 +-
.../class_wpilib.PneumaticHub.StickyFaults.ts | 2 +-
.../class_wpilib.PneumaticHub.Version.ts | 2 +-
.../generated/class_wpilib.PneumaticHub.ts | 72 +++----
.../generated/class_wpilib.PneumaticsBase.ts | 54 ++---
.../class_wpilib.PneumaticsControlModule.ts | 74 +++----
.../class_wpilib.PowerDistribution.Faults.ts | 4 +-
...s_wpilib.PowerDistribution.StickyFaults.ts | 4 +-
.../class_wpilib.PowerDistribution.Version.ts | 2 +-
.../class_wpilib.PowerDistribution.ts | 40 ++--
src/blocks/generated/class_wpilib.Relay.ts | 28 +--
.../generated/class_wpilib.RobotBase.ts | 26 +--
.../generated/class_wpilib.RobotController.ts | 8 +-
src/blocks/generated/class_wpilib.SD540.ts | 42 ++--
src/blocks/generated/class_wpilib.SPI.ts | 64 +++---
.../class_wpilib.SendableBuilderImpl.ts | 92 ++++----
.../generated/class_wpilib.SendableChooser.ts | 12 +-
.../class_wpilib.SendableChooserBase.ts | 2 +-
.../generated/class_wpilib.SerialPort.ts | 28 +--
src/blocks/generated/class_wpilib.Servo.ts | 46 ++--
src/blocks/generated/class_wpilib.SharpIR.ts | 16 +-
.../generated/class_wpilib.SmartDashboard.ts | 28 +--
src/blocks/generated/class_wpilib.Solenoid.ts | 20 +-
src/blocks/generated/class_wpilib.Spark.ts | 42 ++--
.../class_wpilib.StadiaController.Axis.ts | 2 +-
.../class_wpilib.StadiaController.Button.ts | 2 +-
.../class_wpilib.StadiaController.ts | 204 +++++++++---------
.../class_wpilib.SynchronousInterrupt.ts | 16 +-
src/blocks/generated/class_wpilib.Talon.ts | 42 ++--
.../generated/class_wpilib.TimedRobot.ts | 70 +++---
src/blocks/generated/class_wpilib.Timer.ts | 18 +-
.../generated/class_wpilib.TimesliceRobot.ts | 72 +++----
src/blocks/generated/class_wpilib.Tracer.ts | 12 +-
.../generated/class_wpilib.Ultrasonic.ts | 22 +-
src/blocks/generated/class_wpilib.Victor.ts | 42 ++--
src/blocks/generated/class_wpilib.VictorSP.ts | 42 ++--
src/blocks/generated/class_wpilib.Watchdog.ts | 22 +-
.../class_wpilib.XboxController.Axis.ts | 2 +-
.../class_wpilib.XboxController.Button.ts | 2 +-
.../generated/class_wpilib.XboxController.ts | 176 +++++++--------
...wpilib.counter.ExternalDirectionCounter.ts | 14 +-
.../class_wpilib.counter.Tachometer.ts | 28 +--
.../class_wpilib.counter.UpDownCounter.ts | 16 +-
...lib.drive.DifferentialDrive.WheelSpeeds.ts | 2 +-
.../class_wpilib.drive.DifferentialDrive.ts | 42 ++--
...s_wpilib.drive.MecanumDrive.WheelSpeeds.ts | 2 +-
.../class_wpilib.drive.MecanumDrive.ts | 36 ++--
.../class_wpilib.drive.RobotDriveBase.ts | 26 +--
.../class_wpilib.event.BooleanEvent.ts | 14 +-
.../generated/class_wpilib.event.EventLoop.ts | 8 +-
.../class_wpilib.event.NetworkBooleanEvent.ts | 22 +-
.../class_wpilib.interfaces.CounterBase.ts | 14 +-
.../class_wpilib.interfaces.GenericHID.ts | 62 +++---
...class_wpilib.interfaces.MotorController.ts | 16 +-
...class_wpilib.shuffleboard.ComplexWidget.ts | 30 +--
.../class_wpilib.shuffleboard.LayoutType.ts | 4 +-
.../class_wpilib.shuffleboard.Shuffleboard.ts | 6 +-
....shuffleboard.ShuffleboardComponentBase.ts | 16 +-
...ilib.shuffleboard.ShuffleboardContainer.ts | 94 ++++----
..._wpilib.shuffleboard.ShuffleboardLayout.ts | 110 +++++-----
...ass_wpilib.shuffleboard.ShuffleboardTab.ts | 98 ++++-----
...s_wpilib.shuffleboard.ShuffleboardValue.ts | 8 +-
.../class_wpilib.shuffleboard.SimpleWidget.ts | 34 +--
...huffleboard.SuppliedBoolListValueWidget.ts | 28 +--
...ib.shuffleboard.SuppliedBoolValueWidget.ts | 28 +--
...ffleboard.SuppliedDoubleListValueWidget.ts | 28 +--
....shuffleboard.SuppliedDoubleValueWidget.ts | 28 +--
...uffleboard.SuppliedFloatListValueWidget.ts | 28 +--
...b.shuffleboard.SuppliedFloatValueWidget.ts | 28 +--
...shuffleboard.SuppliedIntListValueWidget.ts | 28 +--
...shuffleboard.SuppliedIntegerValueWidget.ts | 28 +--
...lib.shuffleboard.SuppliedRawValueWidget.ts | 28 +--
...ffleboard.SuppliedStringListValueWidget.ts | 28 +--
....shuffleboard.SuppliedStringValueWidget.ts | 28 +--
.../class_wpilib.shuffleboard.WidgetType.ts | 4 +-
...s_wpilib.shuffleboard._ComplexComponent.ts | 22 +-
...lass_wpilib.shuffleboard._ComplexWidget.ts | 28 +--
...ss_wpilib.shuffleboard._LayoutComponent.ts | 22 +-
...ss_wpilib.shuffleboard._SimpleComponent.ts | 22 +-
...class_wpilib.shuffleboard._SimpleWidget.ts | 28 +--
...uffleboard._SuppliedValueComponent_bool.ts | 22 +-
...fleboard._SuppliedValueComponent_double.ts | 22 +-
...ffleboard._SuppliedValueComponent_float.ts | 22 +-
...leboard._SuppliedValueComponent_integer.ts | 22 +-
...fleboard._SuppliedValueComponent_string.ts | 22 +-
...ard._SuppliedValueComponent_vector_bool.ts | 22 +-
...d._SuppliedValueComponent_vector_double.ts | 22 +-
...rd._SuppliedValueComponent_vector_float.ts | 22 +-
...oard._SuppliedValueComponent_vector_int.ts | 22 +-
...oard._SuppliedValueComponent_vector_raw.ts | 22 +-
...d._SuppliedValueComponent_vector_string.ts | 22 +-
....shuffleboard._SuppliedValueWidget_bool.ts | 28 +--
...huffleboard._SuppliedValueWidget_double.ts | 28 +--
...shuffleboard._SuppliedValueWidget_float.ts | 28 +--
...uffleboard._SuppliedValueWidget_integer.ts | 28 +--
...huffleboard._SuppliedValueWidget_string.ts | 28 +--
...eboard._SuppliedValueWidget_vector_bool.ts | 28 +--
...oard._SuppliedValueWidget_vector_double.ts | 28 +--
...board._SuppliedValueWidget_vector_float.ts | 28 +--
...leboard._SuppliedValueWidget_vector_int.ts | 28 +--
...leboard._SuppliedValueWidget_vector_raw.ts | 28 +--
...oard._SuppliedValueWidget_vector_string.ts | 28 +--
...lass_wpilib.simulation.ADIS16448_IMUSim.ts | 20 +-
...lass_wpilib.simulation.ADIS16470_IMUSim.ts | 20 +-
.../class_wpilib.simulation.ADXL345Sim.ts | 10 +-
.../class_wpilib.simulation.ADXL362Sim.ts | 8 +-
...lass_wpilib.simulation.ADXRS450_GyroSim.ts | 6 +-
...ass_wpilib.simulation.AddressableLEDSim.ts | 38 ++--
...lass_wpilib.simulation.AnalogEncoderSim.ts | 6 +-
.../class_wpilib.simulation.AnalogGyroSim.ts | 24 +--
.../class_wpilib.simulation.AnalogInputSim.ts | 60 +++---
...class_wpilib.simulation.AnalogOutputSim.ts | 18 +-
...lass_wpilib.simulation.AnalogTriggerSim.ts | 26 +--
.../class_wpilib.simulation.BatterySim.ts | 6 +-
...ilib.simulation.BuiltInAccelerometerSim.ts | 36 ++--
.../class_wpilib.simulation.CTREPCMSim.ts | 50 ++---
.../class_wpilib.simulation.CallbackStore.ts | 2 +-
.../class_wpilib.simulation.DCMotorSim.ts | 42 ++--
.../class_wpilib.simulation.DIOSim.ts | 38 ++--
...DifferentialDrivetrainSim.KitbotGearing.ts | 2 +-
...n.DifferentialDrivetrainSim.KitbotMotor.ts | 2 +-
...fferentialDrivetrainSim.KitbotWheelSize.ts | 2 +-
...ulation.DifferentialDrivetrainSim.State.ts | 2 +-
...ib.simulation.DifferentialDrivetrainSim.ts | 54 ++---
.../class_wpilib.simulation.DigitalPWMSim.ts | 26 +--
...ass_wpilib.simulation.DoubleSolenoidSim.ts | 12 +-
...lass_wpilib.simulation.DriverStationSim.ts | 24 +--
...s_wpilib.simulation.DutyCycleEncoderSim.ts | 12 +-
.../class_wpilib.simulation.DutyCycleSim.ts | 26 +--
.../class_wpilib.simulation.ElevatorSim.ts | 42 ++--
.../class_wpilib.simulation.EncoderSim.ts | 70 +++---
.../class_wpilib.simulation.FlywheelSim.ts | 38 ++--
.../class_wpilib.simulation.GenericHIDSim.ts | 32 +--
.../class_wpilib.simulation.JoystickSim.ts | 46 ++--
...wpilib.simulation.LinearSystemSim_1_1_1.ts | 18 +-
...wpilib.simulation.LinearSystemSim_1_1_2.ts | 18 +-
...wpilib.simulation.LinearSystemSim_2_1_1.ts | 18 +-
...wpilib.simulation.LinearSystemSim_2_1_2.ts | 18 +-
...wpilib.simulation.LinearSystemSim_2_2_1.ts | 18 +-
...wpilib.simulation.LinearSystemSim_2_2_2.ts | 18 +-
...lass_wpilib.simulation.PS4ControllerSim.ts | 72 +++----
...lass_wpilib.simulation.PS5ControllerSim.ts | 72 +++----
.../class_wpilib.simulation.PWMSim.ts | 44 ++--
...ass_wpilib.simulation.PneumaticsBaseSim.ts | 42 ++--
..._wpilib.simulation.PowerDistributionSim.ts | 34 +--
.../class_wpilib.simulation.REVPHSim.ts | 50 ++---
.../class_wpilib.simulation.RelaySim.ts | 30 +--
.../class_wpilib.simulation.RoboRioSim.ts | 44 ++--
...s_wpilib.simulation.SPIAccelerometerSim.ts | 34 +--
...ss_wpilib.simulation.SendableChooserSim.ts | 6 +-
.../class_wpilib.simulation.SharpIRSim.ts | 6 +-
.../class_wpilib.simulation.SimDeviceSim.ts | 26 +--
...s_wpilib.simulation.SingleJointedArmSim.ts | 40 ++--
.../class_wpilib.simulation.SolenoidSim.ts | 14 +-
...s_wpilib.simulation.StadiaControllerSim.ts | 70 +++---
.../class_wpilib.simulation.UltrasonicSim.ts | 8 +-
...ass_wpilib.simulation.XboxControllerSim.ts | 64 +++---
...s_wpilib.sysid.SysIdRoutineLog.MotorLog.ts | 18 +-
.../class_wpilib.sysid.SysIdRoutineLog.ts | 8 +-
...class_wpimath.controller.ArmFeedforward.ts | 22 +-
...s_wpimath.controller.BangBangController.ts | 22 +-
...trolAffinePlantInversionFeedforward_1_1.ts | 20 +-
...trolAffinePlantInversionFeedforward_2_1.ts | 20 +-
...trolAffinePlantInversionFeedforward_2_2.ts | 20 +-
...er.DifferentialDriveAccelerationLimiter.ts | 6 +-
...ntroller.DifferentialDriveWheelVoltages.ts | 2 +-
..._wpimath.controller.ElevatorFeedforward.ts | 22 +-
...ath.controller.HolonomicDriveController.ts | 18 +-
...th.controller.ImplicitModelFollower_1_1.ts | 16 +-
...th.controller.ImplicitModelFollower_2_1.ts | 16 +-
...th.controller.ImplicitModelFollower_2_2.ts | 16 +-
...ntroller.LTVDifferentialDriveController.ts | 10 +-
...pimath.controller.LTVUnicycleController.ts | 14 +-
...ler.LinearPlantInversionFeedforward_1_1.ts | 18 +-
...ler.LinearPlantInversionFeedforward_2_1.ts | 18 +-
...ler.LinearPlantInversionFeedforward_2_2.ts | 18 +-
...ler.LinearPlantInversionFeedforward_3_2.ts | 18 +-
...controller.LinearQuadraticRegulator_1_1.ts | 34 +--
...controller.LinearQuadraticRegulator_2_1.ts | 34 +--
...controller.LinearQuadraticRegulator_2_2.ts | 34 +--
...controller.LinearQuadraticRegulator_3_2.ts | 34 +--
.../class_wpimath.controller.PIDController.ts | 64 +++---
...pimath.controller.ProfiledPIDController.ts | 72 +++----
...controller.ProfiledPIDControllerRadians.ts | 72 +++----
...ss_wpimath.controller.RamseteController.ts | 14 +-
...controller.SimpleMotorFeedforwardMeters.ts | 22 +-
...ontroller.SimpleMotorFeedforwardRadians.ts | 22 +-
...stimator.DifferentialDrivePoseEstimator.ts | 26 +--
...imator.DifferentialDrivePoseEstimator3d.ts | 26 +--
...or.DifferentialDrivePoseEstimator3dBase.ts | 24 +--
...ator.DifferentialDrivePoseEstimatorBase.ts | 24 +--
...th.estimator.ExtendedKalmanFilter_1_1_1.ts | 26 +--
...th.estimator.ExtendedKalmanFilter_2_1_1.ts | 26 +--
...th.estimator.ExtendedKalmanFilter_2_2_2.ts | 26 +--
...ss_wpimath.estimator.KalmanFilter_1_1_1.ts | 24 +--
...ss_wpimath.estimator.KalmanFilter_2_1_1.ts | 24 +--
...ss_wpimath.estimator.KalmanFilter_2_2_2.ts | 24 +--
...ss_wpimath.estimator.KalmanFilter_3_2_3.ts | 24 +--
...ath.estimator.MecanumDrivePoseEstimator.ts | 26 +--
...h.estimator.MecanumDrivePoseEstimator3d.ts | 26 +--
...timator.MecanumDrivePoseEstimator3dBase.ts | 24 +--
...estimator.MecanumDrivePoseEstimatorBase.ts | 24 +--
...ath.estimator.SwerveDrive2PoseEstimator.ts | 26 +--
...h.estimator.SwerveDrive2PoseEstimator3d.ts | 26 +--
...timator.SwerveDrive2PoseEstimator3dBase.ts | 24 +--
...estimator.SwerveDrive2PoseEstimatorBase.ts | 24 +--
...ath.estimator.SwerveDrive3PoseEstimator.ts | 26 +--
...h.estimator.SwerveDrive3PoseEstimator3d.ts | 26 +--
...timator.SwerveDrive3PoseEstimator3dBase.ts | 24 +--
...estimator.SwerveDrive3PoseEstimatorBase.ts | 24 +--
...ath.estimator.SwerveDrive4PoseEstimator.ts | 26 +--
...h.estimator.SwerveDrive4PoseEstimator3d.ts | 26 +--
...timator.SwerveDrive4PoseEstimator3dBase.ts | 24 +--
...estimator.SwerveDrive4PoseEstimatorBase.ts | 24 +--
...ath.estimator.SwerveDrive6PoseEstimator.ts | 26 +--
...h.estimator.SwerveDrive6PoseEstimator3d.ts | 26 +--
...timator.SwerveDrive6PoseEstimator3dBase.ts | 24 +--
...estimator.SwerveDrive6PoseEstimatorBase.ts | 24 +--
.../class_wpimath.filter.Debouncer.ts | 4 +-
.../class_wpimath.filter.LinearFilter.ts | 16 +-
.../class_wpimath.filter.MedianFilter.ts | 8 +-
.../class_wpimath.filter.SlewRateLimiter.ts | 10 +-
.../class_wpimath.geometry.CoordinateAxis.ts | 14 +-
...class_wpimath.geometry.CoordinateSystem.ts | 16 +-
.../class_wpimath.geometry.Ellipse2d.ts | 24 +--
.../class_wpimath.geometry.Pose2d.ts | 36 ++--
.../class_wpimath.geometry.Pose3d.ts | 36 ++--
.../class_wpimath.geometry.Quaternion.ts | 36 ++--
.../class_wpimath.geometry.Rectangle2d.ts | 22 +-
.../class_wpimath.geometry.Rotation2d.ts | 26 +--
.../class_wpimath.geometry.Rotation3d.ts | 36 ++--
.../class_wpimath.geometry.Transform2d.ts | 26 +--
.../class_wpimath.geometry.Transform3d.ts | 26 +--
.../class_wpimath.geometry.Translation2d.ts | 34 +--
.../class_wpimath.geometry.Translation3d.ts | 32 +--
.../class_wpimath.geometry.Twist2d.ts | 4 +-
.../class_wpimath.geometry.Twist3d.ts | 4 +-
...rpolation.TimeInterpolatableFloatBuffer.ts | 12 +-
...polation.TimeInterpolatablePose2dBuffer.ts | 12 +-
...polation.TimeInterpolatablePose3dBuffer.ts | 12 +-
...tion.TimeInterpolatableRotation2dBuffer.ts | 12 +-
...tion.TimeInterpolatableRotation3dBuffer.ts | 12 +-
...n.TimeInterpolatableTranslation2dBuffer.ts | 12 +-
...n.TimeInterpolatableTranslation3dBuffer.ts | 12 +-
.../class_wpimath.kinematics.ChassisSpeeds.ts | 18 +-
....kinematics.DifferentialDriveKinematics.ts | 12 +-
...ematics.DifferentialDriveKinematicsBase.ts | 10 +-
...th.kinematics.DifferentialDriveOdometry.ts | 14 +-
....kinematics.DifferentialDriveOdometry3d.ts | 14 +-
...ematics.DifferentialDriveOdometry3dBase.ts | 14 +-
...inematics.DifferentialDriveOdometryBase.ts | 14 +-
...ematics.DifferentialDriveWheelPositions.ts | 4 +-
...kinematics.DifferentialDriveWheelSpeeds.ts | 6 +-
...imath.kinematics.MecanumDriveKinematics.ts | 22 +-
...h.kinematics.MecanumDriveKinematicsBase.ts | 10 +-
...wpimath.kinematics.MecanumDriveOdometry.ts | 14 +-
...imath.kinematics.MecanumDriveOdometry3d.ts | 14 +-
...h.kinematics.MecanumDriveOdometry3dBase.ts | 14 +-
...ath.kinematics.MecanumDriveOdometryBase.ts | 14 +-
...h.kinematics.MecanumDriveWheelPositions.ts | 4 +-
...math.kinematics.MecanumDriveWheelSpeeds.ts | 6 +-
...imath.kinematics.SwerveDrive2Kinematics.ts | 22 +-
...h.kinematics.SwerveDrive2KinematicsBase.ts | 10 +-
...wpimath.kinematics.SwerveDrive2Odometry.ts | 14 +-
...imath.kinematics.SwerveDrive2Odometry3d.ts | 14 +-
...h.kinematics.SwerveDrive2Odometry3dBase.ts | 14 +-
...ath.kinematics.SwerveDrive2OdometryBase.ts | 14 +-
...imath.kinematics.SwerveDrive3Kinematics.ts | 22 +-
...h.kinematics.SwerveDrive3KinematicsBase.ts | 10 +-
...wpimath.kinematics.SwerveDrive3Odometry.ts | 14 +-
...imath.kinematics.SwerveDrive3Odometry3d.ts | 14 +-
...h.kinematics.SwerveDrive3Odometry3dBase.ts | 14 +-
...ath.kinematics.SwerveDrive3OdometryBase.ts | 14 +-
...imath.kinematics.SwerveDrive4Kinematics.ts | 22 +-
...h.kinematics.SwerveDrive4KinematicsBase.ts | 10 +-
...wpimath.kinematics.SwerveDrive4Odometry.ts | 14 +-
...imath.kinematics.SwerveDrive4Odometry3d.ts | 14 +-
...h.kinematics.SwerveDrive4Odometry3dBase.ts | 14 +-
...ath.kinematics.SwerveDrive4OdometryBase.ts | 14 +-
...imath.kinematics.SwerveDrive6Kinematics.ts | 22 +-
...h.kinematics.SwerveDrive6KinematicsBase.ts | 10 +-
...wpimath.kinematics.SwerveDrive6Odometry.ts | 14 +-
...imath.kinematics.SwerveDrive6Odometry3d.ts | 14 +-
...h.kinematics.SwerveDrive6Odometry3dBase.ts | 14 +-
...ath.kinematics.SwerveDrive6OdometryBase.ts | 14 +-
...wpimath.kinematics.SwerveModulePosition.ts | 4 +-
...ss_wpimath.kinematics.SwerveModuleState.ts | 6 +-
...wpimath.optimization.SimulatedAnnealing.ts | 4 +-
.../class_wpimath.path.TravelingSalesman.ts | 6 +-
...class_wpimath.spline.CubicHermiteSpline.ts | 10 +-
...ass_wpimath.spline.QuinticHermiteSpline.ts | 10 +-
...ss_wpimath.spline.Spline3.ControlVector.ts | 6 +-
.../generated/class_wpimath.spline.Spline3.ts | 10 +-
...ss_wpimath.spline.Spline5.ControlVector.ts | 6 +-
.../generated/class_wpimath.spline.Spline5.ts | 10 +-
.../class_wpimath.spline.SplineHelper.ts | 6 +-
...lass_wpimath.spline.SplineParameterizer.ts | 4 +-
...s_wpimath.system.LinearSystemLoop_1_1_1.ts | 36 ++--
...s_wpimath.system.LinearSystemLoop_2_1_1.ts | 36 ++--
...s_wpimath.system.LinearSystemLoop_2_2_2.ts | 36 ++--
...s_wpimath.system.LinearSystemLoop_3_2_3.ts | 36 ++--
...class_wpimath.system.LinearSystem_1_1_1.ts | 22 +-
...class_wpimath.system.LinearSystem_1_1_2.ts | 22 +-
...class_wpimath.system.LinearSystem_1_1_3.ts | 22 +-
...class_wpimath.system.LinearSystem_2_1_1.ts | 22 +-
...class_wpimath.system.LinearSystem_2_1_2.ts | 22 +-
...class_wpimath.system.LinearSystem_2_1_3.ts | 22 +-
...class_wpimath.system.LinearSystem_2_2_1.ts | 22 +-
...class_wpimath.system.LinearSystem_2_2_2.ts | 22 +-
...class_wpimath.system.LinearSystem_2_2_3.ts | 22 +-
...class_wpimath.system.LinearSystem_3_2_1.ts | 22 +-
...class_wpimath.system.LinearSystem_3_2_2.ts | 22 +-
...class_wpimath.system.LinearSystem_3_2_3.ts | 22 +-
.../class_wpimath.system.plant.DCMotor.ts | 46 ++--
...ass_wpimath.system.plant.LinearSystemId.ts | 28 +--
...xponentialProfileMeterVolts.Constraints.ts | 6 +-
...onentialProfileMeterVolts.ProfileTiming.ts | 4 +-
...tory.ExponentialProfileMeterVolts.State.ts | 2 +-
...trajectory.ExponentialProfileMeterVolts.ts | 10 +-
...ass_wpimath.trajectory.Trajectory.State.ts | 4 +-
.../class_wpimath.trajectory.Trajectory.ts | 16 +-
...ass_wpimath.trajectory.TrajectoryConfig.ts | 34 +--
..._wpimath.trajectory.TrajectoryGenerator.ts | 12 +-
...math.trajectory.TrajectoryParameterizer.ts | 4 +-
...class_wpimath.trajectory.TrajectoryUtil.ts | 8 +-
...trajectory.TrapezoidProfile.Constraints.ts | 2 +-
...imath.trajectory.TrapezoidProfile.State.ts | 2 +-
...ass_wpimath.trajectory.TrapezoidProfile.ts | 10 +-
...ory.TrapezoidProfileRadians.Constraints.ts | 2 +-
...rajectory.TrapezoidProfileRadians.State.ts | 2 +-
...math.trajectory.TrapezoidProfileRadians.ts | 10 +-
...raint.CentripetalAccelerationConstraint.ts | 8 +-
...t.DifferentialDriveKinematicsConstraint.ts | 8 +-
...aint.DifferentialDriveVoltageConstraint.ts | 6 +-
...y.constraint.EllipticalRegionConstraint.ts | 10 +-
...ectory.constraint.MaxVelocityConstraint.ts | 8 +-
...traint.MecanumDriveKinematicsConstraint.ts | 8 +-
....constraint.RectangularRegionConstraint.ts | 8 +-
...traint.SwerveDrive2KinematicsConstraint.ts | 8 +-
...traint.SwerveDrive3KinematicsConstraint.ts | 8 +-
...traint.SwerveDrive4KinematicsConstraint.ts | 8 +-
...traint.SwerveDrive6KinematicsConstraint.ts | 8 +-
....constraint.TrajectoryConstraint.MinMax.ts | 4 +-
...jectory.constraint.TrajectoryConstraint.ts | 6 +-
src/blocks/generated/module_hal.simulation.ts | 60 +++---
src/blocks/generated/module_hal.ts | 124 +++++------
.../generated/module_wpilib.shuffleboard.ts | 2 +-
.../generated/module_wpilib.simulation.ts | 2 +-
.../generated/module_wpimath.geometry.ts | 2 +-
src/blocks/generated/module_wpimath.ts | 2 +-
src/blocks/utils/generated/python.ts | 2 +-
447 files changed, 5170 insertions(+), 5170 deletions(-)
diff --git a/src/blocks/generated/class_hal.AddressableLEDData.ts b/src/blocks/generated/class_hal.AddressableLEDData.ts
index 17a6232b..a2cbbef9 100644
--- a/src/blocks/generated/class_hal.AddressableLEDData.ts
+++ b/src/blocks/generated/class_hal.AddressableLEDData.ts
@@ -21,7 +21,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.AddressableLEDData", "varType": "int", "importModule": "", "selfLabel": "addressableLEDData", "selfType": "hal.AddressableLEDData"}, "fields": {"MODULE_OR_CLASS": "hal.AddressableLEDData", "VAR": "g"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.AddressableLEDData", "varType": "int", "importModule": "", "selfLabel": "addressableLEDData", "selfType": "hal.AddressableLEDData"}, "fields": {"MODULE_OR_CLASS": "hal.AddressableLEDData", "VAR": "r"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.AddressableLEDData", "varType": "int", "importModule": "", "selfLabel": "addressableLEDData", "selfType": "hal.AddressableLEDData"}, "fields": {"MODULE_OR_CLASS": "hal.AddressableLEDData", "VAR": "r"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAddressableLEDData"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.AddressableLEDData", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.AddressableLEDData"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAddressableLEDData"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.AddressableLEDData", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.AddressableLEDData"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.CANStreamMessage.ts b/src/blocks/generated/class_hal.CANStreamMessage.ts
index b67db4c2..5aa7e7dc 100644
--- a/src/blocks/generated/class_hal.CANStreamMessage.ts
+++ b/src/blocks/generated/class_hal.CANStreamMessage.ts
@@ -23,7 +23,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.CANStreamMessage", "varType": "int", "importModule": "", "selfLabel": "cANStreamMessage", "selfType": "hal.CANStreamMessage"}, "fields": {"MODULE_OR_CLASS": "hal.CANStreamMessage", "VAR": "messageID"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANStreamMessage"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.CANStreamMessage", "varType": "int", "importModule": "", "selfLabel": "cANStreamMessage", "selfType": "hal.CANStreamMessage"}, "fields": {"MODULE_OR_CLASS": "hal.CANStreamMessage", "VAR": "timeStamp"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANStreamMessage"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.CANStreamMessage", "varType": "int", "importModule": "", "selfLabel": "cANStreamMessage", "selfType": "hal.CANStreamMessage"}, "fields": {"MODULE_OR_CLASS": "hal.CANStreamMessage", "VAR": "timeStamp"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANStreamMessage"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCANStreamMessage"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.CANStreamMessage", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.CANStreamMessage"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCANStreamMessage"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.CANStreamMessage", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.CANStreamMessage"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.ControlWord.ts b/src/blocks/generated/class_hal.ControlWord.ts
index 09143cf4..9b92d4a6 100644
--- a/src/blocks/generated/class_hal.ControlWord.ts
+++ b/src/blocks/generated/class_hal.ControlWord.ts
@@ -29,7 +29,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.ControlWord", "varType": "int", "importModule": "", "selfLabel": "controlWord", "selfType": "hal.ControlWord"}, "fields": {"MODULE_OR_CLASS": "hal.ControlWord", "VAR": "fmsAttached"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlWord"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.ControlWord", "varType": "int", "importModule": "", "selfLabel": "controlWord", "selfType": "hal.ControlWord"}, "fields": {"MODULE_OR_CLASS": "hal.ControlWord", "VAR": "test"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlWord"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.ControlWord", "varType": "int", "importModule": "", "selfLabel": "controlWord", "selfType": "hal.ControlWord"}, "fields": {"MODULE_OR_CLASS": "hal.ControlWord", "VAR": "test"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlWord"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlWord"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.ControlWord", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.ControlWord"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlWord"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.ControlWord", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.ControlWord"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.JoystickAxes.ts b/src/blocks/generated/class_hal.JoystickAxes.ts
index 84c86fb7..95a0b8bc 100644
--- a/src/blocks/generated/class_hal.JoystickAxes.ts
+++ b/src/blocks/generated/class_hal.JoystickAxes.ts
@@ -20,7 +20,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.JoystickAxes", "varType": "memoryview", "importModule": "", "selfLabel": "joystickAxes", "selfType": "hal.JoystickAxes"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickAxes", "VAR": "raw"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickAxes"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.JoystickAxes", "varType": "int", "importModule": "", "selfLabel": "joystickAxes", "selfType": "hal.JoystickAxes"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickAxes", "VAR": "count"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickAxes"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.JoystickAxes", "varType": "int", "importModule": "", "selfLabel": "joystickAxes", "selfType": "hal.JoystickAxes"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickAxes", "VAR": "count"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickAxes"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystickAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.JoystickAxes", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickAxes"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystickAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.JoystickAxes", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickAxes"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.JoystickButtons.ts b/src/blocks/generated/class_hal.JoystickButtons.ts
index 1aa50e15..3dbd4218 100644
--- a/src/blocks/generated/class_hal.JoystickButtons.ts
+++ b/src/blocks/generated/class_hal.JoystickButtons.ts
@@ -19,7 +19,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.JoystickButtons", "varType": "int", "importModule": "", "selfLabel": "joystickButtons", "selfType": "hal.JoystickButtons"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickButtons", "VAR": "buttons"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickButtons"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.JoystickButtons", "varType": "int", "importModule": "", "selfLabel": "joystickButtons", "selfType": "hal.JoystickButtons"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickButtons", "VAR": "count"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickButtons"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.JoystickButtons", "varType": "int", "importModule": "", "selfLabel": "joystickButtons", "selfType": "hal.JoystickButtons"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickButtons", "VAR": "count"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickButtons"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystickButtons"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.JoystickButtons", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickButtons"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystickButtons"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.JoystickButtons", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickButtons"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.JoystickDescriptor.ts b/src/blocks/generated/class_hal.JoystickDescriptor.ts
index ce624e09..14f9eb6e 100644
--- a/src/blocks/generated/class_hal.JoystickDescriptor.ts
+++ b/src/blocks/generated/class_hal.JoystickDescriptor.ts
@@ -28,7 +28,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.JoystickDescriptor", "varType": "int", "importModule": "", "selfLabel": "joystickDescriptor", "selfType": "hal.JoystickDescriptor"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickDescriptor", "VAR": "type"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickDescriptor"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.JoystickDescriptor", "varType": "memoryview", "importModule": "", "selfLabel": "joystickDescriptor", "selfType": "hal.JoystickDescriptor"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickDescriptor", "VAR": "axisTypes"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickDescriptor"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.JoystickDescriptor", "varType": "memoryview", "importModule": "", "selfLabel": "joystickDescriptor", "selfType": "hal.JoystickDescriptor"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickDescriptor", "VAR": "name"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickDescriptor"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystickDescriptor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.JoystickDescriptor", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickDescriptor"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystickDescriptor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.JoystickDescriptor", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickDescriptor"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.JoystickPOVs.ts b/src/blocks/generated/class_hal.JoystickPOVs.ts
index 96ada521..91ee7cbf 100644
--- a/src/blocks/generated/class_hal.JoystickPOVs.ts
+++ b/src/blocks/generated/class_hal.JoystickPOVs.ts
@@ -19,7 +19,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.JoystickPOVs", "varType": "int", "importModule": "", "selfLabel": "joystickPOVs", "selfType": "hal.JoystickPOVs"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickPOVs", "VAR": "count"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickPOVs"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.JoystickPOVs", "varType": "int", "importModule": "", "selfLabel": "joystickPOVs", "selfType": "hal.JoystickPOVs"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickPOVs", "VAR": "count"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickPOVs"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.JoystickPOVs", "varType": "memoryview", "importModule": "", "selfLabel": "joystickPOVs", "selfType": "hal.JoystickPOVs"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickPOVs", "VAR": "povs"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickPOVs"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystickPOVs"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.JoystickPOVs", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickPOVs"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystickPOVs"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.JoystickPOVs", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.JoystickPOVs"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.MatchInfo.ts b/src/blocks/generated/class_hal.MatchInfo.ts
index 48243923..3bf1b9d6 100644
--- a/src/blocks/generated/class_hal.MatchInfo.ts
+++ b/src/blocks/generated/class_hal.MatchInfo.ts
@@ -28,7 +28,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.MatchInfo", "varType": "int", "importModule": "", "selfLabel": "matchInfo", "selfType": "hal.MatchInfo"}, "fields": {"MODULE_OR_CLASS": "hal.MatchInfo", "VAR": "replayNumber"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchInfo"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.MatchInfo", "varType": "hal._wpiHal.MatchType", "importModule": "", "selfLabel": "matchInfo", "selfType": "hal.MatchInfo"}, "fields": {"MODULE_OR_CLASS": "hal.MatchInfo", "VAR": "matchType"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchInfo"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.MatchInfo", "varType": "hal._wpiHal.MatchType", "importModule": "", "selfLabel": "matchInfo", "selfType": "hal.MatchInfo"}, "fields": {"MODULE_OR_CLASS": "hal.MatchInfo", "VAR": "matchType"}, "inputs": {"VALUE": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchType"}}}}, "SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchInfo"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMatchInfo"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.MatchInfo", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.MatchInfo"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMatchInfo"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.MatchInfo", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.MatchInfo"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.PowerDistributionFaults.ts b/src/blocks/generated/class_hal.PowerDistributionFaults.ts
index 09ad5f3e..b6c178a0 100644
--- a/src/blocks/generated/class_hal.PowerDistributionFaults.ts
+++ b/src/blocks/generated/class_hal.PowerDistributionFaults.ts
@@ -69,7 +69,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.PowerDistributionFaults", "varType": "int", "importModule": "", "selfLabel": "powerDistributionFaults", "selfType": "hal.PowerDistributionFaults"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionFaults", "VAR": "channel9BreakerFault"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionFaults"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.PowerDistributionFaults", "varType": "int", "importModule": "", "selfLabel": "powerDistributionFaults", "selfType": "hal.PowerDistributionFaults"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionFaults", "VAR": "hardwareFault"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionFaults"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.PowerDistributionFaults", "varType": "int", "importModule": "", "selfLabel": "powerDistributionFaults", "selfType": "hal.PowerDistributionFaults"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionFaults", "VAR": "hardwareFault"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionFaults"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistributionFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.PowerDistributionFaults", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionFaults"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistributionFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.PowerDistributionFaults", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionFaults"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.PowerDistributionStickyFaults.ts b/src/blocks/generated/class_hal.PowerDistributionStickyFaults.ts
index 2f33d55e..86de4ad1 100644
--- a/src/blocks/generated/class_hal.PowerDistributionStickyFaults.ts
+++ b/src/blocks/generated/class_hal.PowerDistributionStickyFaults.ts
@@ -75,7 +75,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.PowerDistributionStickyFaults", "varType": "int", "importModule": "", "selfLabel": "powerDistributionStickyFaults", "selfType": "hal.PowerDistributionStickyFaults"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionStickyFaults", "VAR": "hardwareFault"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionStickyFaults"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.PowerDistributionStickyFaults", "varType": "int", "importModule": "", "selfLabel": "powerDistributionStickyFaults", "selfType": "hal.PowerDistributionStickyFaults"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionStickyFaults", "VAR": "hasReset"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionStickyFaults"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.PowerDistributionStickyFaults", "varType": "int", "importModule": "", "selfLabel": "powerDistributionStickyFaults", "selfType": "hal.PowerDistributionStickyFaults"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionStickyFaults", "VAR": "hasReset"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionStickyFaults"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistributionStickyFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.PowerDistributionStickyFaults", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionStickyFaults"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistributionStickyFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.PowerDistributionStickyFaults", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionStickyFaults"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.PowerDistributionVersion.ts b/src/blocks/generated/class_hal.PowerDistributionVersion.ts
index 1020033a..4a912546 100644
--- a/src/blocks/generated/class_hal.PowerDistributionVersion.ts
+++ b/src/blocks/generated/class_hal.PowerDistributionVersion.ts
@@ -27,7 +27,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.PowerDistributionVersion", "varType": "int", "importModule": "", "selfLabel": "powerDistributionVersion", "selfType": "hal.PowerDistributionVersion"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionVersion", "VAR": "hardwareMinor"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionVersion"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.PowerDistributionVersion", "varType": "int", "importModule": "", "selfLabel": "powerDistributionVersion", "selfType": "hal.PowerDistributionVersion"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionVersion", "VAR": "uniqueId"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionVersion"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.PowerDistributionVersion", "varType": "int", "importModule": "", "selfLabel": "powerDistributionVersion", "selfType": "hal.PowerDistributionVersion"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionVersion", "VAR": "uniqueId"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionVersion"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistributionVersion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.PowerDistributionVersion", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionVersion"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistributionVersion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.PowerDistributionVersion", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.PowerDistributionVersion"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.REVPHCompressorConfig.ts b/src/blocks/generated/class_hal.REVPHCompressorConfig.ts
index 84c26379..1d8f613d 100644
--- a/src/blocks/generated/class_hal.REVPHCompressorConfig.ts
+++ b/src/blocks/generated/class_hal.REVPHCompressorConfig.ts
@@ -25,7 +25,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.REVPHCompressorConfig", "varType": "float", "importModule": "", "selfLabel": "rEVPHCompressorConfig", "selfType": "hal.REVPHCompressorConfig"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHCompressorConfig", "VAR": "maxAnalogVoltage"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHCompressorConfig"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.REVPHCompressorConfig", "varType": "float", "importModule": "", "selfLabel": "rEVPHCompressorConfig", "selfType": "hal.REVPHCompressorConfig"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHCompressorConfig", "VAR": "minAnalogVoltage"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHCompressorConfig"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.REVPHCompressorConfig", "varType": "float", "importModule": "", "selfLabel": "rEVPHCompressorConfig", "selfType": "hal.REVPHCompressorConfig"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHCompressorConfig", "VAR": "minAnalogVoltage"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHCompressorConfig"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHCompressorConfig"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.REVPHCompressorConfig", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHCompressorConfig"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHCompressorConfig"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.REVPHCompressorConfig", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHCompressorConfig"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.REVPHFaults.ts b/src/blocks/generated/class_hal.REVPHFaults.ts
index 442a17ca..be0b79ef 100644
--- a/src/blocks/generated/class_hal.REVPHFaults.ts
+++ b/src/blocks/generated/class_hal.REVPHFaults.ts
@@ -59,7 +59,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.REVPHFaults", "varType": "int", "importModule": "", "selfLabel": "rEVPHFaults", "selfType": "hal.REVPHFaults"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHFaults", "VAR": "hardwareFault"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHFaults"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.REVPHFaults", "varType": "int", "importModule": "", "selfLabel": "rEVPHFaults", "selfType": "hal.REVPHFaults"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHFaults", "VAR": "solenoidOverCurrent"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHFaults"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.REVPHFaults", "varType": "int", "importModule": "", "selfLabel": "rEVPHFaults", "selfType": "hal.REVPHFaults"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHFaults", "VAR": "solenoidOverCurrent"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHFaults"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.REVPHFaults", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHFaults"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.REVPHFaults", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHFaults"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.REVPHStickyFaults.ts b/src/blocks/generated/class_hal.REVPHStickyFaults.ts
index af7b8d9d..b2014e9e 100644
--- a/src/blocks/generated/class_hal.REVPHStickyFaults.ts
+++ b/src/blocks/generated/class_hal.REVPHStickyFaults.ts
@@ -33,7 +33,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.REVPHStickyFaults", "varType": "int", "importModule": "", "selfLabel": "rEVPHStickyFaults", "selfType": "hal.REVPHStickyFaults"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHStickyFaults", "VAR": "hasReset"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHStickyFaults"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.REVPHStickyFaults", "varType": "int", "importModule": "", "selfLabel": "rEVPHStickyFaults", "selfType": "hal.REVPHStickyFaults"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHStickyFaults", "VAR": "solenoidOverCurrent"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHStickyFaults"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.REVPHStickyFaults", "varType": "int", "importModule": "", "selfLabel": "rEVPHStickyFaults", "selfType": "hal.REVPHStickyFaults"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHStickyFaults", "VAR": "solenoidOverCurrent"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHStickyFaults"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHStickyFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.REVPHStickyFaults", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHStickyFaults"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHStickyFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.REVPHStickyFaults", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHStickyFaults"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.REVPHVersion.ts b/src/blocks/generated/class_hal.REVPHVersion.ts
index 12293a1c..70879f63 100644
--- a/src/blocks/generated/class_hal.REVPHVersion.ts
+++ b/src/blocks/generated/class_hal.REVPHVersion.ts
@@ -27,7 +27,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.REVPHVersion", "varType": "int", "importModule": "", "selfLabel": "rEVPHVersion", "selfType": "hal.REVPHVersion"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHVersion", "VAR": "hardwareMinor"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHVersion"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.REVPHVersion", "varType": "int", "importModule": "", "selfLabel": "rEVPHVersion", "selfType": "hal.REVPHVersion"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHVersion", "VAR": "uniqueId"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHVersion"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.REVPHVersion", "varType": "int", "importModule": "", "selfLabel": "rEVPHVersion", "selfType": "hal.REVPHVersion"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHVersion", "VAR": "uniqueId"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHVersion"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHVersion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.REVPHVersion", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHVersion"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHVersion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.REVPHVersion", "args": [], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.REVPHVersion"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.SimBoolean.ts b/src/blocks/generated/class_hal.SimBoolean.ts
index 6def72cd..893f49b4 100644
--- a/src/blocks/generated/class_hal.SimBoolean.ts
+++ b/src/blocks/generated/class_hal.SimBoolean.ts
@@ -19,9 +19,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimBoolean", "varType": "hal._wpiHal.Type", "importModule": "", "selfLabel": "simBoolean", "selfType": "hal.SimBoolean"}, "fields": {"MODULE_OR_CLASS": "hal.SimBoolean", "VAR": "type"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimBoolean"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimBoolean", "varType": "bool", "importModule": "", "selfLabel": "simBoolean", "selfType": "hal.SimBoolean"}, "fields": {"MODULE_OR_CLASS": "hal.SimBoolean", "VAR": "value"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimBoolean"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimBoolean", "varType": "bool", "importModule": "", "selfLabel": "simBoolean", "selfType": "hal.SimBoolean"}, "fields": {"MODULE_OR_CLASS": "hal.SimBoolean", "VAR": "value"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimBoolean"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimBoolean"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.SimBoolean", "args": [{"name": "handle", "type": "int"}], "tooltip": "Wraps a simulated value handle as returned by HAL_CreateSimValueBoolean().\n\n:param handle: simulated value handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimBoolean"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "simBoolean", "type": "hal._wpiHal.SimBoolean"}], "tooltip": "Gets the simulated value.\n\n:returns: The current value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimBoolean", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimBoolean"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simBoolean", "type": "hal._wpiHal.SimBoolean"}, {"name": "value", "type": "bool"}], "tooltip": "Sets the simulated value.\n\n:param value: the value to set", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimBoolean", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimBoolean"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimBoolean"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.SimBoolean", "args": [{"name": "handle", "type": "int"}], "tooltip": "Wraps a simulated value handle as returned by HAL_CreateSimValueBoolean().\n\n:param handle: simulated value handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimBoolean"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "simBoolean", "type": "hal.SimBoolean"}], "tooltip": "Gets the simulated value.\n\n:returns: The current value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimBoolean", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimBoolean"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simBoolean", "type": "hal.SimBoolean"}, {"name": "value", "type": "bool"}], "tooltip": "Sets the simulated value.\n\n:param value: the value to set", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimBoolean", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimBoolean"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.SimDevice.ts b/src/blocks/generated/class_hal.SimDevice.ts
index 4457e73a..d3eb1d3f 100644
--- a/src/blocks/generated/class_hal.SimDevice.ts
+++ b/src/blocks/generated/class_hal.SimDevice.ts
@@ -16,16 +16,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimDevice", "varType": "str", "importModule": "", "selfLabel": "simDevice", "selfType": "hal.SimDevice"}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "VAR": "name"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDevice"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.SimDevice", "args": [{"name": "name", "type": "str"}], "tooltip": "Creates a simulated device.\n\nThe device name must be unique. Returns null if the device name\nalready exists. If multiple instances of the same device are desired,\nrecommend appending the instance/unique identifier in brackets to the base\nname, e.g. \"device[1]\".\n\nUsing a device name of the form \"Type:Name\" will create a WebSockets node\nwith a type value of \"Type\" and a device value of \"Name\"\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: device name", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDevice"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.SimDevice", "args": [{"name": "name", "type": "str"}, {"name": "index", "type": "int"}], "tooltip": "Creates a simulated device.\n\nThe device name must be unique. Returns null if the device name\nalready exists. This is a convenience method that appends index in\nbrackets to the device name, e.g. passing index=1 results in \"device[1]\"\nfor the device name.\n\nUsing a device name of the form \"Type:Name\" will create a WebSockets node\nwith a type value of \"Type\" and a device value of \"Name\"\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: device name\n:param index: device index number to append to name", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDevice"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.SimDevice", "args": [{"name": "name", "type": "str"}, {"name": "index", "type": "int"}, {"name": "channel", "type": "int"}], "tooltip": "Creates a simulated device.\n\nThe device name must be unique. Returns null if the device name\nalready exists. This is a convenience method that appends index and\nchannel in brackets to the device name, e.g. passing index=1 and channel=2\nresults in \"device[1,2]\" for the device name.\n\nUsing a device name of the form \"Type:Name\" will create a WebSockets node\nwith a type value of \"Type\" and a device value of \"Name\"\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: device name\n:param index: device index number to append to name\n:param channel: device channel number to append to name", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimBoolean"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.SimBoolean", "args": [{"name": "simDevice", "type": "hal._wpiHal.SimDevice"}, {"name": "name", "type": "str"}, {"name": "direction", "type": "int"}, {"name": "initialValue", "type": "bool"}], "tooltip": "Creates a boolean value on the simulated device.\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: value name\n:param direction: input/output/bidir (from perspective of user code)\n:param initialValue: initial value\n\n:returns: simulated boolean value object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "createBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDouble"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.SimDouble", "args": [{"name": "simDevice", "type": "hal._wpiHal.SimDevice"}, {"name": "name", "type": "str"}, {"name": "direction", "type": "int"}, {"name": "initialValue", "type": "float"}], "tooltip": "Creates a double value on the simulated device.\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: value name\n:param direction: input/output/bidir (from perspective of user code)\n:param initialValue: initial value\n\n:returns: simulated double value object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "createDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimEnum"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.SimEnum", "args": [{"name": "simDevice", "type": "hal._wpiHal.SimDevice"}, {"name": "name", "type": "str"}, {"name": "direction", "type": "int"}, {"name": "options", "type": "list[str]"}, {"name": "initialValue", "type": "int"}], "tooltip": "Creates an enumerated value on the simulated device.\n\nEnumerated values are always in the range 0 to numOptions-1.\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: value name\n:param direction: input/output/bidir (from perspective of user code)\n:param options: array of option descriptions\n:param initialValue: initial value (selection)\n\n:returns: simulated enum value object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "createEnum"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimEnum"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.SimEnum", "args": [{"name": "simDevice", "type": "hal._wpiHal.SimDevice"}, {"name": "name", "type": "str"}, {"name": "direction", "type": "int"}, {"name": "options", "type": "list[str]"}, {"name": "optionValues", "type": "list[float]"}, {"name": "initialValue", "type": "int"}], "tooltip": "Creates an enumerated value on the simulated device with double values.\n\nEnumerated values are always in the range 0 to numOptions-1.\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: value name\n:param direction: input/output/bidir (from perspective of user code)\n:param options: array of option descriptions\n:param optionValues: array of option values (must be the same size as\n options)\n:param initialValue: initial value (selection)\n\n:returns: simulated enum value object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "createEnumDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimInt"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.SimInt", "args": [{"name": "simDevice", "type": "hal._wpiHal.SimDevice"}, {"name": "name", "type": "str"}, {"name": "direction", "type": "int"}, {"name": "initialValue", "type": "int"}], "tooltip": "Creates an int value on the simulated device.\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: value name\n:param direction: input/output/bidir (from perspective of user code)\n:param initialValue: initial value\n\n:returns: simulated double value object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "createInt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimLong"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.SimLong", "args": [{"name": "simDevice", "type": "hal._wpiHal.SimDevice"}, {"name": "name", "type": "str"}, {"name": "direction", "type": "int"}, {"name": "initialValue", "type": "int"}], "tooltip": "Creates a long value on the simulated device.\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: value name\n:param direction: input/output/bidir (from perspective of user code)\n:param initialValue: initial value\n\n:returns: simulated double value object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "createLong"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "simDevice", "type": "hal._wpiHal.SimDevice"}], "tooltip": "Get the name of the simulated device.\n\n:returns: name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDevice"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.SimDevice", "args": [{"name": "name", "type": "str"}], "tooltip": "Creates a simulated device.\n\nThe device name must be unique. Returns null if the device name\nalready exists. If multiple instances of the same device are desired,\nrecommend appending the instance/unique identifier in brackets to the base\nname, e.g. \"device[1]\".\n\nUsing a device name of the form \"Type:Name\" will create a WebSockets node\nwith a type value of \"Type\" and a device value of \"Name\"\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: device name", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDevice"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.SimDevice", "args": [{"name": "name", "type": "str"}, {"name": "index", "type": "int"}], "tooltip": "Creates a simulated device.\n\nThe device name must be unique. Returns null if the device name\nalready exists. This is a convenience method that appends index in\nbrackets to the device name, e.g. passing index=1 results in \"device[1]\"\nfor the device name.\n\nUsing a device name of the form \"Type:Name\" will create a WebSockets node\nwith a type value of \"Type\" and a device value of \"Name\"\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: device name\n:param index: device index number to append to name", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDevice"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.SimDevice", "args": [{"name": "name", "type": "str"}, {"name": "index", "type": "int"}, {"name": "channel", "type": "int"}], "tooltip": "Creates a simulated device.\n\nThe device name must be unique. Returns null if the device name\nalready exists. This is a convenience method that appends index and\nchannel in brackets to the device name, e.g. passing index=1 and channel=2\nresults in \"device[1,2]\" for the device name.\n\nUsing a device name of the form \"Type:Name\" will create a WebSockets node\nwith a type value of \"Type\" and a device value of \"Name\"\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: device name\n:param index: device index number to append to name\n:param channel: device channel number to append to name", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimBoolean"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.SimBoolean", "args": [{"name": "simDevice", "type": "hal.SimDevice"}, {"name": "name", "type": "str"}, {"name": "direction", "type": "int"}, {"name": "initialValue", "type": "bool"}], "tooltip": "Creates a boolean value on the simulated device.\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: value name\n:param direction: input/output/bidir (from perspective of user code)\n:param initialValue: initial value\n\n:returns: simulated boolean value object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "createBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDouble"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.SimDouble", "args": [{"name": "simDevice", "type": "hal.SimDevice"}, {"name": "name", "type": "str"}, {"name": "direction", "type": "int"}, {"name": "initialValue", "type": "float"}], "tooltip": "Creates a double value on the simulated device.\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: value name\n:param direction: input/output/bidir (from perspective of user code)\n:param initialValue: initial value\n\n:returns: simulated double value object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "createDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimEnum"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.SimEnum", "args": [{"name": "simDevice", "type": "hal.SimDevice"}, {"name": "name", "type": "str"}, {"name": "direction", "type": "int"}, {"name": "options", "type": "list[str]"}, {"name": "initialValue", "type": "int"}], "tooltip": "Creates an enumerated value on the simulated device.\n\nEnumerated values are always in the range 0 to numOptions-1.\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: value name\n:param direction: input/output/bidir (from perspective of user code)\n:param options: array of option descriptions\n:param initialValue: initial value (selection)\n\n:returns: simulated enum value object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "createEnum"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimEnum"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.SimEnum", "args": [{"name": "simDevice", "type": "hal.SimDevice"}, {"name": "name", "type": "str"}, {"name": "direction", "type": "int"}, {"name": "options", "type": "list[str]"}, {"name": "optionValues", "type": "list[float]"}, {"name": "initialValue", "type": "int"}], "tooltip": "Creates an enumerated value on the simulated device with double values.\n\nEnumerated values are always in the range 0 to numOptions-1.\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: value name\n:param direction: input/output/bidir (from perspective of user code)\n:param options: array of option descriptions\n:param optionValues: array of option values (must be the same size as\n options)\n:param initialValue: initial value (selection)\n\n:returns: simulated enum value object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "createEnumDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimInt"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.SimInt", "args": [{"name": "simDevice", "type": "hal.SimDevice"}, {"name": "name", "type": "str"}, {"name": "direction", "type": "int"}, {"name": "initialValue", "type": "int"}], "tooltip": "Creates an int value on the simulated device.\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: value name\n:param direction: input/output/bidir (from perspective of user code)\n:param initialValue: initial value\n\n:returns: simulated double value object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "createInt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimLong"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.SimLong", "args": [{"name": "simDevice", "type": "hal.SimDevice"}, {"name": "name", "type": "str"}, {"name": "direction", "type": "int"}, {"name": "initialValue", "type": "int"}], "tooltip": "Creates a long value on the simulated device.\n\nIf not in simulation, results in an \"empty\" object that evaluates to false\nin a boolean context.\n\n:param name: value name\n:param direction: input/output/bidir (from perspective of user code)\n:param initialValue: initial value\n\n:returns: simulated double value object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "createLong"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "simDevice", "type": "hal.SimDevice"}], "tooltip": "Get the name of the simulated device.\n\n:returns: name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDevice", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "hal.SimDevice.Direction", "importModule": "hal"}, "fields": {"ENUM_TYPE": "hal.SimDevice.Direction", "ENUM_VALUE": "kBidir"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "hal.SimDevice.Direction", "importModule": "hal"}, "fields": {"ENUM_TYPE": "hal.SimDevice.Direction", "ENUM_VALUE": "kInput"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "hal.SimDevice.Direction", "importModule": "hal"}, "fields": {"ENUM_TYPE": "hal.SimDevice.Direction", "ENUM_VALUE": "kOutput"}},
diff --git a/src/blocks/generated/class_hal.SimDouble.ts b/src/blocks/generated/class_hal.SimDouble.ts
index 094eb30c..ff1ca829 100644
--- a/src/blocks/generated/class_hal.SimDouble.ts
+++ b/src/blocks/generated/class_hal.SimDouble.ts
@@ -19,10 +19,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimDouble", "varType": "hal._wpiHal.Type", "importModule": "", "selfLabel": "simDouble", "selfType": "hal.SimDouble"}, "fields": {"MODULE_OR_CLASS": "hal.SimDouble", "VAR": "type"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDouble"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimDouble", "varType": "float", "importModule": "", "selfLabel": "simDouble", "selfType": "hal.SimDouble"}, "fields": {"MODULE_OR_CLASS": "hal.SimDouble", "VAR": "value"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDouble"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimDouble", "varType": "float", "importModule": "", "selfLabel": "simDouble", "selfType": "hal.SimDouble"}, "fields": {"MODULE_OR_CLASS": "hal.SimDouble", "VAR": "value"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDouble"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDouble"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.SimDouble", "args": [{"name": "handle", "type": "int"}], "tooltip": "Wraps a simulated value handle as returned by HAL_CreateSimValueDouble().\n\n:param handle: simulated value handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimDouble"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "simDouble", "type": "hal._wpiHal.SimDouble"}], "tooltip": "Gets the simulated value.\n\n:returns: The current value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDouble", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDouble"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simDouble", "type": "hal._wpiHal.SimDouble"}], "tooltip": "Resets the simulated value to 0. Use this instead of Set(0) for resetting\nincremental sensor values like encoder counts or gyro accumulated angle\nto ensure correct behavior in a distributed system (e.g. WebSockets).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDouble", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDouble"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simDouble", "type": "hal._wpiHal.SimDouble"}, {"name": "value", "type": "float"}], "tooltip": "Sets the simulated value.\n\n:param value: the value to set", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDouble", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDouble"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDouble"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.SimDouble", "args": [{"name": "handle", "type": "int"}], "tooltip": "Wraps a simulated value handle as returned by HAL_CreateSimValueDouble().\n\n:param handle: simulated value handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimDouble"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "simDouble", "type": "hal.SimDouble"}], "tooltip": "Gets the simulated value.\n\n:returns: The current value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDouble", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDouble"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simDouble", "type": "hal.SimDouble"}], "tooltip": "Resets the simulated value to 0. Use this instead of Set(0) for resetting\nincremental sensor values like encoder counts or gyro accumulated angle\nto ensure correct behavior in a distributed system (e.g. WebSockets).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDouble", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDouble"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simDouble", "type": "hal.SimDouble"}, {"name": "value", "type": "float"}], "tooltip": "Sets the simulated value.\n\n:param value: the value to set", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimDouble", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDouble"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.SimEnum.ts b/src/blocks/generated/class_hal.SimEnum.ts
index 3a0bd570..09e3f866 100644
--- a/src/blocks/generated/class_hal.SimEnum.ts
+++ b/src/blocks/generated/class_hal.SimEnum.ts
@@ -19,9 +19,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimEnum", "varType": "hal._wpiHal.Type", "importModule": "", "selfLabel": "simEnum", "selfType": "hal.SimEnum"}, "fields": {"MODULE_OR_CLASS": "hal.SimEnum", "VAR": "type"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimEnum"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimEnum", "varType": "int", "importModule": "", "selfLabel": "simEnum", "selfType": "hal.SimEnum"}, "fields": {"MODULE_OR_CLASS": "hal.SimEnum", "VAR": "value"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimEnum"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimEnum", "varType": "int", "importModule": "", "selfLabel": "simEnum", "selfType": "hal.SimEnum"}, "fields": {"MODULE_OR_CLASS": "hal.SimEnum", "VAR": "value"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimEnum"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimEnum"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.SimEnum", "args": [{"name": "handle", "type": "int"}], "tooltip": "Wraps a simulated value handle as returned by HAL_CreateSimValueEnum().\n\n:param handle: simulated value handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimEnum"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "simEnum", "type": "hal._wpiHal.SimEnum"}], "tooltip": "Gets the simulated value.\n\n:returns: The current value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimEnum", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimEnum"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simEnum", "type": "hal._wpiHal.SimEnum"}, {"name": "value", "type": "int"}], "tooltip": "Sets the simulated value.\n\n:param value: the value to set", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimEnum", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimEnum"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimEnum"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.SimEnum", "args": [{"name": "handle", "type": "int"}], "tooltip": "Wraps a simulated value handle as returned by HAL_CreateSimValueEnum().\n\n:param handle: simulated value handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimEnum"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "simEnum", "type": "hal.SimEnum"}], "tooltip": "Gets the simulated value.\n\n:returns: The current value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimEnum", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimEnum"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simEnum", "type": "hal.SimEnum"}, {"name": "value", "type": "int"}], "tooltip": "Sets the simulated value.\n\n:param value: the value to set", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimEnum", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimEnum"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.SimInt.ts b/src/blocks/generated/class_hal.SimInt.ts
index 251dae7e..fa3cc511 100644
--- a/src/blocks/generated/class_hal.SimInt.ts
+++ b/src/blocks/generated/class_hal.SimInt.ts
@@ -19,10 +19,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimInt", "varType": "hal._wpiHal.Type", "importModule": "", "selfLabel": "simInt", "selfType": "hal.SimInt"}, "fields": {"MODULE_OR_CLASS": "hal.SimInt", "VAR": "type"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimInt"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimInt", "varType": "int", "importModule": "", "selfLabel": "simInt", "selfType": "hal.SimInt"}, "fields": {"MODULE_OR_CLASS": "hal.SimInt", "VAR": "value"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimInt"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimInt", "varType": "int", "importModule": "", "selfLabel": "simInt", "selfType": "hal.SimInt"}, "fields": {"MODULE_OR_CLASS": "hal.SimInt", "VAR": "value"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimInt"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimInt"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.SimInt", "args": [{"name": "handle", "type": "int"}], "tooltip": "Wraps a simulated value handle as returned by HAL_CreateSimValueInt().\n\n:param handle: simulated value handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimInt"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "simInt", "type": "hal._wpiHal.SimInt"}], "tooltip": "Gets the simulated value.\n\n:returns: The current value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimInt", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimInt"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simInt", "type": "hal._wpiHal.SimInt"}], "tooltip": "Resets the simulated value to 0. Use this instead of Set(0) for resetting\nincremental sensor values like encoder counts or gyro accumulated angle\nto ensure correct behavior in a distributed system (e.g. WebSockets).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimInt", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimInt"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simInt", "type": "hal._wpiHal.SimInt"}, {"name": "value", "type": "int"}], "tooltip": "Sets the simulated value.\n\n:param value: the value to set", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimInt", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimInt"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimInt"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.SimInt", "args": [{"name": "handle", "type": "int"}], "tooltip": "Wraps a simulated value handle as returned by HAL_CreateSimValueInt().\n\n:param handle: simulated value handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimInt"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "simInt", "type": "hal.SimInt"}], "tooltip": "Gets the simulated value.\n\n:returns: The current value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimInt", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimInt"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simInt", "type": "hal.SimInt"}], "tooltip": "Resets the simulated value to 0. Use this instead of Set(0) for resetting\nincremental sensor values like encoder counts or gyro accumulated angle\nto ensure correct behavior in a distributed system (e.g. WebSockets).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimInt", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimInt"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simInt", "type": "hal.SimInt"}, {"name": "value", "type": "int"}], "tooltip": "Sets the simulated value.\n\n:param value: the value to set", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimInt", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimInt"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.SimLong.ts b/src/blocks/generated/class_hal.SimLong.ts
index 79928425..4999f8fc 100644
--- a/src/blocks/generated/class_hal.SimLong.ts
+++ b/src/blocks/generated/class_hal.SimLong.ts
@@ -19,10 +19,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimLong", "varType": "hal._wpiHal.Type", "importModule": "", "selfLabel": "simLong", "selfType": "hal.SimLong"}, "fields": {"MODULE_OR_CLASS": "hal.SimLong", "VAR": "type"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimLong"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimLong", "varType": "int", "importModule": "", "selfLabel": "simLong", "selfType": "hal.SimLong"}, "fields": {"MODULE_OR_CLASS": "hal.SimLong", "VAR": "value"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimLong"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimLong", "varType": "int", "importModule": "", "selfLabel": "simLong", "selfType": "hal.SimLong"}, "fields": {"MODULE_OR_CLASS": "hal.SimLong", "VAR": "value"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimLong"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimLong"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.SimLong", "args": [{"name": "handle", "type": "int"}], "tooltip": "Wraps a simulated value handle as returned by HAL_CreateSimValueLong().\n\n:param handle: simulated value handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimLong"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "simLong", "type": "hal._wpiHal.SimLong"}], "tooltip": "Gets the simulated value.\n\n:returns: The current value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimLong", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimLong"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simLong", "type": "hal._wpiHal.SimLong"}], "tooltip": "Resets the simulated value to 0. Use this instead of Set(0) for resetting\nincremental sensor values like encoder counts or gyro accumulated angle\nto ensure correct behavior in a distributed system (e.g. WebSockets).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimLong", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimLong"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simLong", "type": "hal._wpiHal.SimLong"}, {"name": "value", "type": "int"}], "tooltip": "Sets the simulated value.\n\n:param value: the value to set", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimLong", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimLong"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimLong"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.SimLong", "args": [{"name": "handle", "type": "int"}], "tooltip": "Wraps a simulated value handle as returned by HAL_CreateSimValueLong().\n\n:param handle: simulated value handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimLong"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "simLong", "type": "hal.SimLong"}], "tooltip": "Gets the simulated value.\n\n:returns: The current value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimLong", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimLong"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simLong", "type": "hal.SimLong"}], "tooltip": "Resets the simulated value to 0. Use this instead of Set(0) for resetting\nincremental sensor values like encoder counts or gyro accumulated angle\nto ensure correct behavior in a distributed system (e.g. WebSockets).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimLong", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimLong"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simLong", "type": "hal.SimLong"}, {"name": "value", "type": "int"}], "tooltip": "Sets the simulated value.\n\n:param value: the value to set", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.SimLong", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimLong"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.SimValue.ts b/src/blocks/generated/class_hal.SimValue.ts
index c872c4a6..7ed3b2e0 100644
--- a/src/blocks/generated/class_hal.SimValue.ts
+++ b/src/blocks/generated/class_hal.SimValue.ts
@@ -16,7 +16,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimValue", "varType": "hal._wpiHal.Type", "importModule": "", "selfLabel": "simValue", "selfType": "hal.SimValue"}, "fields": {"MODULE_OR_CLASS": "hal.SimValue", "VAR": "type"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimValue"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.SimValue", "varType": "object", "importModule": "", "selfLabel": "simValue", "selfType": "hal.SimValue"}, "fields": {"MODULE_OR_CLASS": "hal.SimValue", "VAR": "value"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimValue"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal._wpiHal.SimValue", "args": [{"name": "handle", "type": "int"}], "tooltip": "Wraps a simulated value handle as returned by HAL_CreateSimValue().\n\n:param handle: simulated value handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimValue"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimValue"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.SimValue", "args": [{"name": "handle", "type": "int"}], "tooltip": "Wraps a simulated value handle as returned by HAL_CreateSimValue().\n\n:param handle: simulated value handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal.SimValue"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.simulation.NotifierInfo.ts b/src/blocks/generated/class_hal.simulation.NotifierInfo.ts
index 53efcf25..b9e55472 100644
--- a/src/blocks/generated/class_hal.simulation.NotifierInfo.ts
+++ b/src/blocks/generated/class_hal.simulation.NotifierInfo.ts
@@ -23,7 +23,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.simulation.NotifierInfo", "varType": "int", "importModule": "", "selfLabel": "notifierInfo", "selfType": "hal.simulation.NotifierInfo"}, "fields": {"MODULE_OR_CLASS": "hal.simulation.NotifierInfo", "VAR": "waitTimeValid"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifierInfo"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.simulation.NotifierInfo", "varType": "int", "importModule": "", "selfLabel": "notifierInfo", "selfType": "hal.simulation.NotifierInfo"}, "fields": {"MODULE_OR_CLASS": "hal.simulation.NotifierInfo", "VAR": "waitTimeValid"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifierInfo"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "hal.simulation.NotifierInfo", "varType": "memoryview", "importModule": "", "selfLabel": "notifierInfo", "selfType": "hal.simulation.NotifierInfo"}, "fields": {"MODULE_OR_CLASS": "hal.simulation.NotifierInfo", "VAR": "name"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifierInfo"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNotifierInfo"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.simulation._simulation.NotifierInfo", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation.NotifierInfo"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNotifierInfo"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "hal.simulation.NotifierInfo", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation.NotifierInfo"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.simulation.SimCB.ts b/src/blocks/generated/class_hal.simulation.SimCB.ts
index 8803d3aa..79c45164 100644
--- a/src/blocks/generated/class_hal.simulation.SimCB.ts
+++ b/src/blocks/generated/class_hal.simulation.SimCB.ts
@@ -11,7 +11,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 1 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simCB", "type": "hal.simulation._simulation.SimCB"}], "tooltip": "Cancel the callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.simulation.SimCB", "FUNC": "cancel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimCB"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simCB", "type": "hal.simulation.SimCB"}], "tooltip": "Cancel the callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.simulation.SimCB", "FUNC": "cancel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimCB"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_hal.simulation.SimValueCB.ts b/src/blocks/generated/class_hal.simulation.SimValueCB.ts
index fa1c1af7..bf657368 100644
--- a/src/blocks/generated/class_hal.simulation.SimValueCB.ts
+++ b/src/blocks/generated/class_hal.simulation.SimValueCB.ts
@@ -11,7 +11,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 1 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simValueCB", "type": "hal.simulation._simulation.SimValueCB"}], "tooltip": "Cancel the callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.simulation.SimValueCB", "FUNC": "cancel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimValueCB"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simValueCB", "type": "hal.simulation.SimValueCB"}], "tooltip": "Cancel the callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "hal.simulation.SimValueCB", "FUNC": "cancel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimValueCB"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.ADIS16448_IMU.ts b/src/blocks/generated/class_wpilib.ADIS16448_IMU.ts
index de865a16..4f4a707d 100644
--- a/src/blocks/generated/class_wpilib.ADIS16448_IMU.ts
+++ b/src/blocks/generated/class_wpilib.ADIS16448_IMU.ts
@@ -14,37 +14,37 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 46 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16448_IMU"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADIS16448_IMU", "args": [], "tooltip": "IMU constructor on onboard MXP CS0, Z-up orientation, and complementary\nAHRS computation.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16448_IMU"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADIS16448_IMU", "args": [{"name": "yaw_axis", "type": "wpilib._wpilib.ADIS16448_IMU.IMUAxis"}, {"name": "port", "type": "wpilib._wpilib.SPI.Port"}, {"name": "cal_time", "type": "wpilib._wpilib.ADIS16448_IMU.CalibrationTime"}], "tooltip": "IMU constructor on the specified MXP port and orientation.\n\n:param yaw_axis: The axis where gravity is present. Valid options are kX,\n kY, and kZ\n:param port: The SPI port where the IMU is connected.\n:param cal_time: The calibration time that should be used on start-up.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCalibrationTime"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Initialize the IMU.\n\nPerform gyro offset calibration by collecting data for a number of seconds\nand computing the center value. The center value is subtracted from\nsubsequent measurements.\n\nIt's important to make sure that the robot is not moving while the\ncentering calculations are in progress, this is typically done when the\nrobot is first turned on while it's sitting at rest before the match\nstarts.\n\nThe calibration routine can be triggered by the user during runtime.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "calibrate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}, {"name": "new_cal_time", "type": "wpilib._wpilib.ADIS16448_IMU.CalibrationTime"}], "tooltip": "Configures the calibration time used for the next calibrate.\n\n:param new_cal_time: The calibration time that should be used", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "configCalTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCalibrationTime"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}, {"name": "decimationRate", "type": "int"}], "tooltip": "Configures the decimation rate of the IMU.\n\n:param decimationRate: The new decimation value.\n\n:returns: 0 if success, 1 if no change, 2 if error.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "configDecRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the acceleration in the X axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getAccelX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the acceleration in the Y axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getAccelY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the acceleration in the Z axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getAccelZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the yaw axis angle in degrees (CCW positive).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.pounds_per_square_inch", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the barometric pressure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getBarometricPressure"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the accumulated gyro angle in the X axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getGyroAngleX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the accumulated gyro angle in the Y axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getGyroAngleY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the accumulated gyro angle in the Z axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getGyroAngleZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees_per_second", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the angular rate in the X axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getGyroRateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees_per_second", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the angular rate in the Y axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getGyroRateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees_per_second", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the angular rate in the Z axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getGyroRateZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.teslas", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the magnetic field strength in the X axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getMagneticFieldX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.teslas", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the magnetic field strength in the Y axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getMagneticFieldY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.teslas", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the magnetic field strength in the Z axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getMagneticFieldZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Get the SPI port number.\n\n:returns: The SPI port number.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees_per_second", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the yaw axis angular rate in degrees per second (CCW positive).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.celsius", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the temperature.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getTemperature"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the complementary angle around the X axis computed from\naccelerometer and gyro rate measurements.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getXComplementaryAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the X-axis filtered acceleration angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getXFilteredAccelAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the complementary angle around the Y axis computed from\naccelerometer and gyro rate measurements.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getYComplementaryAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Returns the Y-axis filtered acceleration angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getYFilteredAccelAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myIMUAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.ADIS16448_IMU.IMUAxis", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getYawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Checks the connection status of the IMU.\n\n:returns: True if the IMU is connected, false otherwise.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Reset the gyro.\n\nResets the gyro accumulations to a heading of zero. This can be used if\nthere is significant drift in the gyro and it needs to be recalibrated\nafter running.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16448_IMU", "type": "wpilib._wpilib.ADIS16448_IMU"}, {"name": "yaw_axis", "type": "wpilib._wpilib.ADIS16448_IMU.IMUAxis"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "setYawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16448_IMU"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADIS16448_IMU", "args": [], "tooltip": "IMU constructor on onboard MXP CS0, Z-up orientation, and complementary\nAHRS computation.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16448_IMU"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADIS16448_IMU", "args": [{"name": "yaw_axis", "type": "wpilib.ADIS16448_IMU.IMUAxis"}, {"name": "port", "type": "wpilib.SPI.Port"}, {"name": "cal_time", "type": "wpilib.ADIS16448_IMU.CalibrationTime"}], "tooltip": "IMU constructor on the specified MXP port and orientation.\n\n:param yaw_axis: The axis where gravity is present. Valid options are kX,\n kY, and kZ\n:param port: The SPI port where the IMU is connected.\n:param cal_time: The calibration time that should be used on start-up.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCalibrationTime"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Initialize the IMU.\n\nPerform gyro offset calibration by collecting data for a number of seconds\nand computing the center value. The center value is subtracted from\nsubsequent measurements.\n\nIt's important to make sure that the robot is not moving while the\ncentering calculations are in progress, this is typically done when the\nrobot is first turned on while it's sitting at rest before the match\nstarts.\n\nThe calibration routine can be triggered by the user during runtime.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "calibrate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}, {"name": "new_cal_time", "type": "wpilib.ADIS16448_IMU.CalibrationTime"}], "tooltip": "Configures the calibration time used for the next calibrate.\n\n:param new_cal_time: The calibration time that should be used", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "configCalTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCalibrationTime"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}, {"name": "decimationRate", "type": "int"}], "tooltip": "Configures the decimation rate of the IMU.\n\n:param decimationRate: The new decimation value.\n\n:returns: 0 if success, 1 if no change, 2 if error.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "configDecRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the acceleration in the X axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getAccelX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the acceleration in the Y axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getAccelY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the acceleration in the Z axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getAccelZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the yaw axis angle in degrees (CCW positive).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.pounds_per_square_inch", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the barometric pressure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getBarometricPressure"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the accumulated gyro angle in the X axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getGyroAngleX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the accumulated gyro angle in the Y axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getGyroAngleY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the accumulated gyro angle in the Z axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getGyroAngleZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees_per_second", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the angular rate in the X axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getGyroRateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees_per_second", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the angular rate in the Y axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getGyroRateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees_per_second", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the angular rate in the Z axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getGyroRateZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.teslas", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the magnetic field strength in the X axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getMagneticFieldX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.teslas", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the magnetic field strength in the Y axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getMagneticFieldY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.teslas", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the magnetic field strength in the Z axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getMagneticFieldZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Get the SPI port number.\n\n:returns: The SPI port number.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees_per_second", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the yaw axis angular rate in degrees per second (CCW positive).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.celsius", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the temperature.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getTemperature"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the complementary angle around the X axis computed from\naccelerometer and gyro rate measurements.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getXComplementaryAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the X-axis filtered acceleration angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getXFilteredAccelAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the complementary angle around the Y axis computed from\naccelerometer and gyro rate measurements.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getYComplementaryAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Returns the Y-axis filtered acceleration angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getYFilteredAccelAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myIMUAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.ADIS16448_IMU.IMUAxis", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "getYawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Checks the connection status of the IMU.\n\n:returns: True if the IMU is connected, false otherwise.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Reset the gyro.\n\nResets the gyro accumulations to a heading of zero. This can be used if\nthere is significant drift in the gyro and it needs to be recalibrated\nafter running.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16448_IMU", "type": "wpilib.ADIS16448_IMU"}, {"name": "yaw_axis", "type": "wpilib.ADIS16448_IMU.IMUAxis"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16448_IMU", "FUNC": "setYawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADIS16448_IMU.CalibrationTime", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADIS16448_IMU.CalibrationTime", "ENUM_VALUE": "_128ms"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADIS16448_IMU.CalibrationTime", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADIS16448_IMU.CalibrationTime", "ENUM_VALUE": "_16s"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADIS16448_IMU.CalibrationTime", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADIS16448_IMU.CalibrationTime", "ENUM_VALUE": "_1s"}},
diff --git a/src/blocks/generated/class_wpilib.ADIS16470_IMU.ts b/src/blocks/generated/class_wpilib.ADIS16470_IMU.ts
index 2ec54330..5523fc34 100644
--- a/src/blocks/generated/class_wpilib.ADIS16470_IMU.ts
+++ b/src/blocks/generated/class_wpilib.ADIS16470_IMU.ts
@@ -14,32 +14,32 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 44 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16470_IMU"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADIS16470_IMU", "args": [], "tooltip": "Creates a new ADIS16740 IMU object.\n\nThe default setup is the onboard SPI port with a calibration time of 1\nsecond. Yaw, pitch, and roll are kZ, kX, and kY respectively.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16470_IMU"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADIS16470_IMU", "args": [{"name": "yaw_axis", "type": "wpilib._wpilib.ADIS16470_IMU.IMUAxis"}, {"name": "pitch_axis", "type": "wpilib._wpilib.ADIS16470_IMU.IMUAxis"}, {"name": "roll_axis", "type": "wpilib._wpilib.ADIS16470_IMU.IMUAxis"}], "tooltip": "Creates a new ADIS16740 IMU object.\n\nThe default setup is the onboard SPI port with a calibration time of 1\nsecond.\n\n:strong:`:emphasis:`Input axes limited to kX, kY and kZ. Specifying kYaw, kPitch,or kRoll\nwill result in an error.``\n\n:param yaw_axis: The axis that measures the yaw\n:param pitch_axis: The axis that measures the pitch\n:param roll_axis: The axis that measures the roll", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16470_IMU"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADIS16470_IMU", "args": [{"name": "yaw_axis", "type": "wpilib._wpilib.ADIS16470_IMU.IMUAxis"}, {"name": "pitch_axis", "type": "wpilib._wpilib.ADIS16470_IMU.IMUAxis"}, {"name": "roll_axis", "type": "wpilib._wpilib.ADIS16470_IMU.IMUAxis"}, {"name": "port", "type": "wpilib._wpilib.SPI.Port"}, {"name": "cal_time", "type": "wpilib._wpilib.ADIS16470_IMU.CalibrationTime"}], "tooltip": "Creates a new ADIS16740 IMU object.\n\n:strong:`:emphasis:`Input axes limited to kX, kY and kZ. Specifying kYaw, kPitch, or\nkRoll will result in an error.``\n\n:param yaw_axis: The axis that measures the yaw\n:param pitch_axis: The axis that measures the pitch\n:param roll_axis: The axis that measures the roll\n:param port: The SPI Port the gyro is plugged into\n:param cal_time: Calibration time", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCalibrationTime"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Switches the active SPI port to standard SPI mode, writes the\ncommand to activate the new null configuration, and re-enables auto SPI.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "calibrate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}, {"name": "new_cal_time", "type": "wpilib._wpilib.ADIS16470_IMU.CalibrationTime"}], "tooltip": "Configures calibration time.\n\n:param new_cal_time: New calibration time\n\n:returns: 0 if success, 1 if no change, 2 if error.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "configCalTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCalibrationTime"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}, {"name": "decimationRate", "type": "int"}], "tooltip": "Configures the decimation rate of the IMU.\n\n:param decimationRate: The new decimation value.\n\n:returns: 0 if success, 1 if no change, 2 if error.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "configDecRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Returns the acceleration in the X axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getAccelX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Returns the acceleration in the Y axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getAccelY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Returns the acceleration in the Z axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getAccelZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}, {"name": "axis", "type": "wpilib._wpilib.ADIS16470_IMU.IMUAxis"}], "tooltip": "Returns the axis angle (CCW positive).\n\n:param axis: The IMUAxis whose angle to return. Defaults to user configured\n Yaw.\n\n:returns: The axis angle (CCW positive).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myIMUAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.ADIS16470_IMU.IMUAxis", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Returns which axis, kX, kY, or kZ, is set to the pitch axis.\n\n:returns: IMUAxis Pitch Axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getPitchAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Gets the SPI port number.\n\n:returns: The SPI port number.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees_per_second", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}, {"name": "axis", "type": "wpilib._wpilib.ADIS16470_IMU.IMUAxis"}], "tooltip": "Returns the axis angular rate (CCW positive).\n\n:param axis: The IMUAxis whose rate to return. Defaults to user configured\n Yaw.\n\n:returns: Axis angular rate (CCW positive).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myIMUAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.ADIS16470_IMU.IMUAxis", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Returns which axis, kX, kY, or kZ, is set to the roll axis.\n\n:returns: IMUAxis Roll Axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getRollAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Returns the X-axis complementary angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getXComplementaryAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Returns the X-axis filtered acceleration angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getXFilteredAccelAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Returns the Y-axis complementary angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getYComplementaryAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Returns the Y-axis filtered acceleration angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getYFilteredAccelAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myIMUAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.ADIS16470_IMU.IMUAxis", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Returns which axis, kX, kY, or kZ, is set to the yaw axis.\n\n:returns: IMUAxis Yaw Axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getYawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Checks the connection status of the IMU.\n\n:returns: True if the IMU is connected, false otherwise.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Reset the gyro.\n\nResets the gyro accumulations to a heading of zero. This can be used if\nthere is significant drift in the gyro and it needs to be recalibrated\nafter running.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}, {"name": "axis", "type": "wpilib._wpilib.ADIS16470_IMU.IMUAxis"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Allow the designated gyro angle to be set to a given value. This may happen\nwith unread values in the buffer, it is suggested that the IMU is not\nmoving when this method is run.\n\n:param axis: IMUAxis that will be changed\n:param angle: The new angle (CCW positive)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "setGyroAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Allow the gyro angle X to be set to a given value. This may happen with\nunread values in the buffer, it is suggested that the IMU is not moving\nwhen this method is run.\n\n:param angle: The new angle (CCW positive)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "setGyroAngleX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Allow the gyro angle Y to be set to a given value. This may happen with\nunread values in the buffer, it is suggested that the IMU is not moving\nwhen this method is run.\n\n:param angle: The new angle (CCW positive)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "setGyroAngleY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib._wpilib.ADIS16470_IMU"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Allow the gyro angle Z to be set to a given value. This may happen with\nunread values in the buffer, it is suggested that the IMU is not moving\nwhen this method is run.\n\n:param angle: The new angle (CCW positive)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "setGyroAngleZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16470_IMU"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADIS16470_IMU", "args": [], "tooltip": "Creates a new ADIS16740 IMU object.\n\nThe default setup is the onboard SPI port with a calibration time of 1\nsecond. Yaw, pitch, and roll are kZ, kX, and kY respectively.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16470_IMU"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADIS16470_IMU", "args": [{"name": "yaw_axis", "type": "wpilib.ADIS16470_IMU.IMUAxis"}, {"name": "pitch_axis", "type": "wpilib.ADIS16470_IMU.IMUAxis"}, {"name": "roll_axis", "type": "wpilib.ADIS16470_IMU.IMUAxis"}], "tooltip": "Creates a new ADIS16740 IMU object.\n\nThe default setup is the onboard SPI port with a calibration time of 1\nsecond.\n\n:strong:`:emphasis:`Input axes limited to kX, kY and kZ. Specifying kYaw, kPitch,or kRoll\nwill result in an error.``\n\n:param yaw_axis: The axis that measures the yaw\n:param pitch_axis: The axis that measures the pitch\n:param roll_axis: The axis that measures the roll", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16470_IMU"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADIS16470_IMU", "args": [{"name": "yaw_axis", "type": "wpilib.ADIS16470_IMU.IMUAxis"}, {"name": "pitch_axis", "type": "wpilib.ADIS16470_IMU.IMUAxis"}, {"name": "roll_axis", "type": "wpilib.ADIS16470_IMU.IMUAxis"}, {"name": "port", "type": "wpilib.SPI.Port"}, {"name": "cal_time", "type": "wpilib.ADIS16470_IMU.CalibrationTime"}], "tooltip": "Creates a new ADIS16740 IMU object.\n\n:strong:`:emphasis:`Input axes limited to kX, kY and kZ. Specifying kYaw, kPitch, or\nkRoll will result in an error.``\n\n:param yaw_axis: The axis that measures the yaw\n:param pitch_axis: The axis that measures the pitch\n:param roll_axis: The axis that measures the roll\n:param port: The SPI Port the gyro is plugged into\n:param cal_time: Calibration time", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCalibrationTime"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Switches the active SPI port to standard SPI mode, writes the\ncommand to activate the new null configuration, and re-enables auto SPI.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "calibrate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}, {"name": "new_cal_time", "type": "wpilib.ADIS16470_IMU.CalibrationTime"}], "tooltip": "Configures calibration time.\n\n:param new_cal_time: New calibration time\n\n:returns: 0 if success, 1 if no change, 2 if error.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "configCalTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCalibrationTime"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}, {"name": "decimationRate", "type": "int"}], "tooltip": "Configures the decimation rate of the IMU.\n\n:param decimationRate: The new decimation value.\n\n:returns: 0 if success, 1 if no change, 2 if error.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "configDecRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Returns the acceleration in the X axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getAccelX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Returns the acceleration in the Y axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getAccelY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Returns the acceleration in the Z axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getAccelZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}, {"name": "axis", "type": "wpilib.ADIS16470_IMU.IMUAxis"}], "tooltip": "Returns the axis angle (CCW positive).\n\n:param axis: The IMUAxis whose angle to return. Defaults to user configured\n Yaw.\n\n:returns: The axis angle (CCW positive).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myIMUAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.ADIS16470_IMU.IMUAxis", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Returns which axis, kX, kY, or kZ, is set to the pitch axis.\n\n:returns: IMUAxis Pitch Axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getPitchAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Gets the SPI port number.\n\n:returns: The SPI port number.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees_per_second", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}, {"name": "axis", "type": "wpilib.ADIS16470_IMU.IMUAxis"}], "tooltip": "Returns the axis angular rate (CCW positive).\n\n:param axis: The IMUAxis whose rate to return. Defaults to user configured\n Yaw.\n\n:returns: Axis angular rate (CCW positive).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myIMUAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.ADIS16470_IMU.IMUAxis", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Returns which axis, kX, kY, or kZ, is set to the roll axis.\n\n:returns: IMUAxis Roll Axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getRollAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Returns the X-axis complementary angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getXComplementaryAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Returns the X-axis filtered acceleration angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getXFilteredAccelAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Returns the Y-axis complementary angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getYComplementaryAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Returns the Y-axis filtered acceleration angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getYFilteredAccelAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myIMUAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.ADIS16470_IMU.IMUAxis", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Returns which axis, kX, kY, or kZ, is set to the yaw axis.\n\n:returns: IMUAxis Yaw Axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "getYawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Checks the connection status of the IMU.\n\n:returns: True if the IMU is connected, false otherwise.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Reset the gyro.\n\nResets the gyro accumulations to a heading of zero. This can be used if\nthere is significant drift in the gyro and it needs to be recalibrated\nafter running.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}, {"name": "axis", "type": "wpilib.ADIS16470_IMU.IMUAxis"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Allow the designated gyro angle to be set to a given value. This may happen\nwith unread values in the buffer, it is suggested that the IMU is not\nmoving when this method is run.\n\n:param axis: IMUAxis that will be changed\n:param angle: The new angle (CCW positive)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "setGyroAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIMUAxis"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Allow the gyro angle X to be set to a given value. This may happen with\nunread values in the buffer, it is suggested that the IMU is not moving\nwhen this method is run.\n\n:param angle: The new angle (CCW positive)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "setGyroAngleX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Allow the gyro angle Y to be set to a given value. This may happen with\nunread values in the buffer, it is suggested that the IMU is not moving\nwhen this method is run.\n\n:param angle: The new angle (CCW positive)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "setGyroAngleY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMU", "type": "wpilib.ADIS16470_IMU"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Allow the gyro angle Z to be set to a given value. This may happen with\nunread values in the buffer, it is suggested that the IMU is not moving\nwhen this method is run.\n\n:param angle: The new angle (CCW positive)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADIS16470_IMU", "FUNC": "setGyroAngleZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADIS16470_IMU.CalibrationTime", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADIS16470_IMU.CalibrationTime", "ENUM_VALUE": "_128ms"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADIS16470_IMU.CalibrationTime", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADIS16470_IMU.CalibrationTime", "ENUM_VALUE": "_16s"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADIS16470_IMU.CalibrationTime", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADIS16470_IMU.CalibrationTime", "ENUM_VALUE": "_1s"}},
diff --git a/src/blocks/generated/class_wpilib.ADXL345_I2C.AllAxes.ts b/src/blocks/generated/class_wpilib.ADXL345_I2C.AllAxes.ts
index 8e035000..7c807af7 100644
--- a/src/blocks/generated/class_wpilib.ADXL345_I2C.AllAxes.ts
+++ b/src/blocks/generated/class_wpilib.ADXL345_I2C.AllAxes.ts
@@ -21,7 +21,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.ADXL345_I2C.AllAxes", "varType": "float", "importModule": "", "selfLabel": "allAxes", "selfType": "wpilib.ADXL345_I2C.AllAxes"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C.AllAxes", "VAR": "YAxis"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllAxes"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.ADXL345_I2C.AllAxes", "varType": "float", "importModule": "", "selfLabel": "allAxes", "selfType": "wpilib.ADXL345_I2C.AllAxes"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C.AllAxes", "VAR": "ZAxis"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllAxes"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.ADXL345_I2C.AllAxes", "varType": "float", "importModule": "", "selfLabel": "allAxes", "selfType": "wpilib.ADXL345_I2C.AllAxes"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C.AllAxes", "VAR": "ZAxis"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllAxes"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADXL345_I2C.AllAxes", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C.AllAxes"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADXL345_I2C.AllAxes", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C.AllAxes"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.ADXL345_I2C.ts b/src/blocks/generated/class_wpilib.ADXL345_I2C.ts
index c604f471..936c2ddf 100644
--- a/src/blocks/generated/class_wpilib.ADXL345_I2C.ts
+++ b/src/blocks/generated/class_wpilib.ADXL345_I2C.ts
@@ -17,16 +17,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 18 blocks.
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.ADXL345_I2C", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "VAR": "kAddress"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL345_I2C"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADXL345_I2C", "args": [{"name": "port", "type": "wpilib._wpilib.I2C.Port"}, {"name": "range", "type": "wpilib._wpilib.ADXL345_I2C.Range"}, {"name": "deviceAddress", "type": "int"}], "tooltip": "Constructs the ADXL345 Accelerometer over I2C.\n\n:param port: The I2C port the accelerometer is attached to\n:param range: The range (+ or -) that the accelerometer will measure\n:param deviceAddress: The I2C address of the accelerometer (0x1D or 0x53)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}, "ARG2": {"shadow": {"type": "math_number", "fields": {"NUM": 29.0}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_I2C", "type": "wpilib._wpilib.ADXL345_I2C"}, {"name": "axis", "type": "wpilib._wpilib.ADXL345_I2C.Axes"}], "tooltip": "Get the acceleration of one axis in Gs.\n\n:param axis: The axis to read from.\n\n:returns: Acceleration of the ADXL345 in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAxes"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.ADXL345_I2C.AllAxes", "args": [{"name": "aDXL345_I2C", "type": "wpilib._wpilib.ADXL345_I2C"}], "tooltip": "Get the acceleration of all axes in Gs.\n\n:returns: An object containing the acceleration measured on each axis of the\n ADXL345 in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getAccelerations"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDXL345_I2C", "type": "wpilib._wpilib.ADXL345_I2C"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getI2CDeviceAddress"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.I2C.Port", "args": [{"name": "aDXL345_I2C", "type": "wpilib._wpilib.ADXL345_I2C"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getI2CPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_I2C", "type": "wpilib._wpilib.ADXL345_I2C"}], "tooltip": "Returns the acceleration along the X axis in g-forces.\n\n:returns: The acceleration along the X axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_I2C", "type": "wpilib._wpilib.ADXL345_I2C"}], "tooltip": "Returns the acceleration along the Y axis in g-forces.\n\n:returns: The acceleration along the Y axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_I2C", "type": "wpilib._wpilib.ADXL345_I2C"}], "tooltip": "Returns the acceleration along the Z axis in g-forces.\n\n:returns: The acceleration along the Z axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345_I2C", "type": "wpilib._wpilib.ADXL345_I2C"}, {"name": "builder", "type": "ntcore._ntcore.NTSendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNTSendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345_I2C", "type": "wpilib._wpilib.ADXL345_I2C"}, {"name": "range", "type": "wpilib._wpilib.ADXL345_I2C.Range"}], "tooltip": "Set the measuring range of the accelerometer.\n\n:param range: The maximum acceleration, positive or negative, that the\n accelerometer will measure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL345_I2C"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADXL345_I2C", "args": [{"name": "port", "type": "wpilib.I2C.Port"}, {"name": "range", "type": "wpilib.ADXL345_I2C.Range"}, {"name": "deviceAddress", "type": "int"}], "tooltip": "Constructs the ADXL345 Accelerometer over I2C.\n\n:param port: The I2C port the accelerometer is attached to\n:param range: The range (+ or -) that the accelerometer will measure\n:param deviceAddress: The I2C address of the accelerometer (0x1D or 0x53)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}, "ARG2": {"shadow": {"type": "math_number", "fields": {"NUM": 29.0}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_I2C", "type": "wpilib.ADXL345_I2C"}, {"name": "axis", "type": "wpilib.ADXL345_I2C.Axes"}], "tooltip": "Get the acceleration of one axis in Gs.\n\n:param axis: The axis to read from.\n\n:returns: Acceleration of the ADXL345 in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAxes"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.ADXL345_I2C.AllAxes", "args": [{"name": "aDXL345_I2C", "type": "wpilib.ADXL345_I2C"}], "tooltip": "Get the acceleration of all axes in Gs.\n\n:returns: An object containing the acceleration measured on each axis of the\n ADXL345 in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getAccelerations"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDXL345_I2C", "type": "wpilib.ADXL345_I2C"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getI2CDeviceAddress"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.I2C.Port", "args": [{"name": "aDXL345_I2C", "type": "wpilib.ADXL345_I2C"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getI2CPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_I2C", "type": "wpilib.ADXL345_I2C"}], "tooltip": "Returns the acceleration along the X axis in g-forces.\n\n:returns: The acceleration along the X axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_I2C", "type": "wpilib.ADXL345_I2C"}], "tooltip": "Returns the acceleration along the Y axis in g-forces.\n\n:returns: The acceleration along the Y axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_I2C", "type": "wpilib.ADXL345_I2C"}], "tooltip": "Returns the acceleration along the Z axis in g-forces.\n\n:returns: The acceleration along the Z axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345_I2C", "type": "wpilib.ADXL345_I2C"}, {"name": "builder", "type": "ntcore.NTSendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNTSendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345_I2C", "type": "wpilib.ADXL345_I2C"}, {"name": "range", "type": "wpilib.ADXL345_I2C.Range"}], "tooltip": "Set the measuring range of the accelerometer.\n\n:param range: The maximum acceleration, positive or negative, that the\n accelerometer will measure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_I2C", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADXL345_I2C.Axes", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADXL345_I2C.Axes", "ENUM_VALUE": "kAxis_X"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADXL345_I2C.Axes", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADXL345_I2C.Axes", "ENUM_VALUE": "kAxis_Y"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADXL345_I2C.Axes", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADXL345_I2C.Axes", "ENUM_VALUE": "kAxis_Z"}},
diff --git a/src/blocks/generated/class_wpilib.ADXL345_SPI.AllAxes.ts b/src/blocks/generated/class_wpilib.ADXL345_SPI.AllAxes.ts
index 9707e8da..bf5542c2 100644
--- a/src/blocks/generated/class_wpilib.ADXL345_SPI.AllAxes.ts
+++ b/src/blocks/generated/class_wpilib.ADXL345_SPI.AllAxes.ts
@@ -21,7 +21,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.ADXL345_SPI.AllAxes", "varType": "float", "importModule": "", "selfLabel": "allAxes", "selfType": "wpilib.ADXL345_SPI.AllAxes"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI.AllAxes", "VAR": "YAxis"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllAxes"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.ADXL345_SPI.AllAxes", "varType": "float", "importModule": "", "selfLabel": "allAxes", "selfType": "wpilib.ADXL345_SPI.AllAxes"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI.AllAxes", "VAR": "ZAxis"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllAxes"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.ADXL345_SPI.AllAxes", "varType": "float", "importModule": "", "selfLabel": "allAxes", "selfType": "wpilib.ADXL345_SPI.AllAxes"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI.AllAxes", "VAR": "ZAxis"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllAxes"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADXL345_SPI.AllAxes", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI.AllAxes"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADXL345_SPI.AllAxes", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI.AllAxes"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.ADXL345_SPI.ts b/src/blocks/generated/class_wpilib.ADXL345_SPI.ts
index dfd79b09..eac32f76 100644
--- a/src/blocks/generated/class_wpilib.ADXL345_SPI.ts
+++ b/src/blocks/generated/class_wpilib.ADXL345_SPI.ts
@@ -14,15 +14,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 16 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL345_SPI"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADXL345_SPI", "args": [{"name": "port", "type": "wpilib._wpilib.SPI.Port"}, {"name": "range", "type": "wpilib._wpilib.ADXL345_SPI.Range"}], "tooltip": "Constructor.\n\n:param port: The SPI port the accelerometer is attached to\n:param range: The range (+ or -) that the accelerometer will measure", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_SPI", "type": "wpilib._wpilib.ADXL345_SPI"}, {"name": "axis", "type": "wpilib._wpilib.ADXL345_SPI.Axes"}], "tooltip": "Get the acceleration of one axis in Gs.\n\n:param axis: The axis to read from.\n\n:returns: Acceleration of the ADXL345 in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "getAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAxes"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.ADXL345_SPI.AllAxes", "args": [{"name": "aDXL345_SPI", "type": "wpilib._wpilib.ADXL345_SPI"}], "tooltip": "Get the acceleration of all axes in Gs.\n\n:returns: An object containing the acceleration measured on each axis of the\n ADXL345 in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "getAccelerations"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.SPI.Port", "args": [{"name": "aDXL345_SPI", "type": "wpilib._wpilib.ADXL345_SPI"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "getSpiPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_SPI", "type": "wpilib._wpilib.ADXL345_SPI"}], "tooltip": "Returns the acceleration along the X axis in g-forces.\n\n:returns: The acceleration along the X axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_SPI", "type": "wpilib._wpilib.ADXL345_SPI"}], "tooltip": "Returns the acceleration along the Y axis in g-forces.\n\n:returns: The acceleration along the Y axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_SPI", "type": "wpilib._wpilib.ADXL345_SPI"}], "tooltip": "Returns the acceleration along the Z axis in g-forces.\n\n:returns: The acceleration along the Z axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345_SPI", "type": "wpilib._wpilib.ADXL345_SPI"}, {"name": "builder", "type": "ntcore._ntcore.NTSendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNTSendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345_SPI", "type": "wpilib._wpilib.ADXL345_SPI"}, {"name": "range", "type": "wpilib._wpilib.ADXL345_SPI.Range"}], "tooltip": "Set the measuring range of the accelerometer.\n\n:param range: The maximum acceleration, positive or negative, that the\n accelerometer will measure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL345_SPI"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADXL345_SPI", "args": [{"name": "port", "type": "wpilib.SPI.Port"}, {"name": "range", "type": "wpilib.ADXL345_SPI.Range"}], "tooltip": "Constructor.\n\n:param port: The SPI port the accelerometer is attached to\n:param range: The range (+ or -) that the accelerometer will measure", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_SPI", "type": "wpilib.ADXL345_SPI"}, {"name": "axis", "type": "wpilib.ADXL345_SPI.Axes"}], "tooltip": "Get the acceleration of one axis in Gs.\n\n:param axis: The axis to read from.\n\n:returns: Acceleration of the ADXL345 in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "getAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAxes"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.ADXL345_SPI.AllAxes", "args": [{"name": "aDXL345_SPI", "type": "wpilib.ADXL345_SPI"}], "tooltip": "Get the acceleration of all axes in Gs.\n\n:returns: An object containing the acceleration measured on each axis of the\n ADXL345 in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "getAccelerations"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.SPI.Port", "args": [{"name": "aDXL345_SPI", "type": "wpilib.ADXL345_SPI"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "getSpiPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_SPI", "type": "wpilib.ADXL345_SPI"}], "tooltip": "Returns the acceleration along the X axis in g-forces.\n\n:returns: The acceleration along the X axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_SPI", "type": "wpilib.ADXL345_SPI"}], "tooltip": "Returns the acceleration along the Y axis in g-forces.\n\n:returns: The acceleration along the Y axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL345_SPI", "type": "wpilib.ADXL345_SPI"}], "tooltip": "Returns the acceleration along the Z axis in g-forces.\n\n:returns: The acceleration along the Z axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345_SPI", "type": "wpilib.ADXL345_SPI"}, {"name": "builder", "type": "ntcore.NTSendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNTSendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345_SPI", "type": "wpilib.ADXL345_SPI"}, {"name": "range", "type": "wpilib.ADXL345_SPI.Range"}], "tooltip": "Set the measuring range of the accelerometer.\n\n:param range: The maximum acceleration, positive or negative, that the\n accelerometer will measure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL345_SPI", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADXL345_SPI.Axes", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADXL345_SPI.Axes", "ENUM_VALUE": "kAxis_X"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADXL345_SPI.Axes", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADXL345_SPI.Axes", "ENUM_VALUE": "kAxis_Y"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADXL345_SPI.Axes", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADXL345_SPI.Axes", "ENUM_VALUE": "kAxis_Z"}},
diff --git a/src/blocks/generated/class_wpilib.ADXL362.AllAxes.ts b/src/blocks/generated/class_wpilib.ADXL362.AllAxes.ts
index 62b7f01f..c17b9d1d 100644
--- a/src/blocks/generated/class_wpilib.ADXL362.AllAxes.ts
+++ b/src/blocks/generated/class_wpilib.ADXL362.AllAxes.ts
@@ -21,7 +21,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.ADXL362.AllAxes", "varType": "float", "importModule": "", "selfLabel": "allAxes", "selfType": "wpilib.ADXL362.AllAxes"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362.AllAxes", "VAR": "YAxis"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllAxes"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.ADXL362.AllAxes", "varType": "float", "importModule": "", "selfLabel": "allAxes", "selfType": "wpilib.ADXL362.AllAxes"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362.AllAxes", "VAR": "ZAxis"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllAxes"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.ADXL362.AllAxes", "varType": "float", "importModule": "", "selfLabel": "allAxes", "selfType": "wpilib.ADXL362.AllAxes"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362.AllAxes", "VAR": "ZAxis"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllAxes"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADXL362.AllAxes", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362.AllAxes"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADXL362.AllAxes", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362.AllAxes"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.ADXL362.ts b/src/blocks/generated/class_wpilib.ADXL362.ts
index 61deef69..8ec2e359 100644
--- a/src/blocks/generated/class_wpilib.ADXL362.ts
+++ b/src/blocks/generated/class_wpilib.ADXL362.ts
@@ -14,16 +14,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 16 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL362"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADXL362", "args": [{"name": "range", "type": "wpilib._wpilib.ADXL362.Range"}], "tooltip": "Constructor. Uses the onboard CS1.\n\n:param range: The range (+ or -) that the accelerometer will measure.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL362"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADXL362", "args": [{"name": "port", "type": "wpilib._wpilib.SPI.Port"}, {"name": "range", "type": "wpilib._wpilib.ADXL362.Range"}], "tooltip": "Constructor.\n\n:param port: The SPI port the accelerometer is attached to\n:param range: The range (+ or -) that the accelerometer will measure.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL362", "type": "wpilib._wpilib.ADXL362"}, {"name": "axis", "type": "wpilib._wpilib.ADXL362.Axes"}], "tooltip": "Get the acceleration of one axis in Gs.\n\n:param axis: The axis to read from.\n\n:returns: Acceleration of the ADXL362 in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "getAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAxes"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.ADXL362.AllAxes", "args": [{"name": "aDXL362", "type": "wpilib._wpilib.ADXL362"}], "tooltip": "Get the acceleration of all axes in Gs.\n\n:returns: An object containing the acceleration measured on each axis of the\n ADXL362 in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "getAccelerations"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.SPI.Port", "args": [{"name": "aDXL362", "type": "wpilib._wpilib.ADXL362"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "getSpiPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL362", "type": "wpilib._wpilib.ADXL362"}], "tooltip": "Returns the acceleration along the X axis in g-forces.\n\n:returns: The acceleration along the X axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL362", "type": "wpilib._wpilib.ADXL362"}], "tooltip": "Returns the acceleration along the Y axis in g-forces.\n\n:returns: The acceleration along the Y axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL362", "type": "wpilib._wpilib.ADXL362"}], "tooltip": "Returns the acceleration along the Z axis in g-forces.\n\n:returns: The acceleration along the Z axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL362", "type": "wpilib._wpilib.ADXL362"}, {"name": "builder", "type": "ntcore._ntcore.NTSendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNTSendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL362", "type": "wpilib._wpilib.ADXL362"}, {"name": "range", "type": "wpilib._wpilib.ADXL362.Range"}], "tooltip": "Set the measuring range of the accelerometer.\n\n:param range: The maximum acceleration, positive or negative, that the\n accelerometer will measure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL362"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADXL362", "args": [{"name": "range", "type": "wpilib.ADXL362.Range"}], "tooltip": "Constructor. Uses the onboard CS1.\n\n:param range: The range (+ or -) that the accelerometer will measure.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL362"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADXL362", "args": [{"name": "port", "type": "wpilib.SPI.Port"}, {"name": "range", "type": "wpilib.ADXL362.Range"}], "tooltip": "Constructor.\n\n:param port: The SPI port the accelerometer is attached to\n:param range: The range (+ or -) that the accelerometer will measure.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL362", "type": "wpilib.ADXL362"}, {"name": "axis", "type": "wpilib.ADXL362.Axes"}], "tooltip": "Get the acceleration of one axis in Gs.\n\n:param axis: The axis to read from.\n\n:returns: Acceleration of the ADXL362 in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "getAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAxes"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllAxes"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.ADXL362.AllAxes", "args": [{"name": "aDXL362", "type": "wpilib.ADXL362"}], "tooltip": "Get the acceleration of all axes in Gs.\n\n:returns: An object containing the acceleration measured on each axis of the\n ADXL362 in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "getAccelerations"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.SPI.Port", "args": [{"name": "aDXL362", "type": "wpilib.ADXL362"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "getSpiPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL362", "type": "wpilib.ADXL362"}], "tooltip": "Returns the acceleration along the X axis in g-forces.\n\n:returns: The acceleration along the X axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL362", "type": "wpilib.ADXL362"}], "tooltip": "Returns the acceleration along the Y axis in g-forces.\n\n:returns: The acceleration along the Y axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXL362", "type": "wpilib.ADXL362"}], "tooltip": "Returns the acceleration along the Z axis in g-forces.\n\n:returns: The acceleration along the Z axis in g-forces.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL362", "type": "wpilib.ADXL362"}, {"name": "builder", "type": "ntcore.NTSendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNTSendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL362", "type": "wpilib.ADXL362"}, {"name": "range", "type": "wpilib.ADXL362.Range"}], "tooltip": "Set the measuring range of the accelerometer.\n\n:param range: The maximum acceleration, positive or negative, that the\n accelerometer will measure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXL362", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADXL362.Axes", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADXL362.Axes", "ENUM_VALUE": "kAxis_X"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADXL362.Axes", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADXL362.Axes", "ENUM_VALUE": "kAxis_Y"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.ADXL362.Axes", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.ADXL362.Axes", "ENUM_VALUE": "kAxis_Z"}},
diff --git a/src/blocks/generated/class_wpilib.ADXRS450_Gyro.ts b/src/blocks/generated/class_wpilib.ADXRS450_Gyro.ts
index 6cc7993f..5666bdef 100644
--- a/src/blocks/generated/class_wpilib.ADXRS450_Gyro.ts
+++ b/src/blocks/generated/class_wpilib.ADXRS450_Gyro.ts
@@ -11,16 +11,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 10 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADXRS450_Gyro", "args": [], "tooltip": "%Gyro constructor on onboard CS0.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.ADXRS450_Gyro", "args": [{"name": "port", "type": "wpilib._wpilib.SPI.Port"}], "tooltip": "%Gyro constructor on the specified SPI port.\n\n:param port: The SPI port the gyro is attached to.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib._wpilib.ADXRS450_Gyro"}], "tooltip": "Calibrate the gyro by running for a number of samples and computing the\ncenter value. Then use the center value as the Accumulator center value for\nsubsequent measurements.\n\nIt's important to make sure that the robot is not moving while the\ncentering calculations are in progress, this is typically done when the\nrobot is first turned on while it's sitting at rest before the competition\nstarts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "calibrate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib._wpilib.ADXRS450_Gyro"}], "tooltip": "Return the actual angle in degrees that the robot is currently facing.\n\nThe angle is based on integration of the returned rate from the gyro.\nThe angle is continuous, that is it will continue from 360->361 degrees.\nThis allows algorithms that wouldn't want to see a discontinuity in the\ngyro output as it sweeps from 360 to 0 on the second time around.\n\n:returns: the current heading of the robot in degrees.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib._wpilib.ADXRS450_Gyro"}], "tooltip": "Get the SPI port number.\n\n:returns: The SPI port number.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib._wpilib.ADXRS450_Gyro"}], "tooltip": "Return the rate of rotation of the gyro\n\nThe rate is based on the most recent reading of the gyro.\n\n:returns: the current rate in degrees per second", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib._wpilib.ADXRS450_Gyro"}], "tooltip": "Return the heading of the robot as a Rotation2d.\n\nThe angle is continuous, that is it will continue from 360 to 361 degrees.\nThis allows algorithms that wouldn't want to see a discontinuity in the\ngyro output as it sweeps past from 360 to 0 on the second time around.\n\nThe angle is expected to increase as the gyro turns counterclockwise when\nlooked at from the top. It needs to follow the NWU axis convention.\n\n:returns: the current heading of the robot as a Rotation2d. This heading is\n based on integration of the returned rate from the gyro.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "getRotation2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib._wpilib.ADXRS450_Gyro"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib._wpilib.ADXRS450_Gyro"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib._wpilib.ADXRS450_Gyro"}], "tooltip": "Reset the gyro.\n\nResets the gyro to a heading of zero. This can be used if there is\nsignificant drift in the gyro and it needs to be recalibrated after it has\nbeen running.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADXRS450_Gyro", "args": [], "tooltip": "%Gyro constructor on onboard CS0.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.ADXRS450_Gyro", "args": [{"name": "port", "type": "wpilib.SPI.Port"}], "tooltip": "%Gyro constructor on the specified SPI port.\n\n:param port: The SPI port the gyro is attached to.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib.ADXRS450_Gyro"}], "tooltip": "Calibrate the gyro by running for a number of samples and computing the\ncenter value. Then use the center value as the Accumulator center value for\nsubsequent measurements.\n\nIt's important to make sure that the robot is not moving while the\ncentering calculations are in progress, this is typically done when the\nrobot is first turned on while it's sitting at rest before the competition\nstarts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "calibrate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib.ADXRS450_Gyro"}], "tooltip": "Return the actual angle in degrees that the robot is currently facing.\n\nThe angle is based on integration of the returned rate from the gyro.\nThe angle is continuous, that is it will continue from 360->361 degrees.\nThis allows algorithms that wouldn't want to see a discontinuity in the\ngyro output as it sweeps from 360 to 0 on the second time around.\n\n:returns: the current heading of the robot in degrees.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib.ADXRS450_Gyro"}], "tooltip": "Get the SPI port number.\n\n:returns: The SPI port number.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib.ADXRS450_Gyro"}], "tooltip": "Return the rate of rotation of the gyro\n\nThe rate is based on the most recent reading of the gyro.\n\n:returns: the current rate in degrees per second", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib.ADXRS450_Gyro"}], "tooltip": "Return the heading of the robot as a Rotation2d.\n\nThe angle is continuous, that is it will continue from 360 to 361 degrees.\nThis allows algorithms that wouldn't want to see a discontinuity in the\ngyro output as it sweeps past from 360 to 0 on the second time around.\n\nThe angle is expected to increase as the gyro turns counterclockwise when\nlooked at from the top. It needs to follow the NWU axis convention.\n\n:returns: the current heading of the robot as a Rotation2d. This heading is\n based on integration of the returned rate from the gyro.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "getRotation2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib.ADXRS450_Gyro"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib.ADXRS450_Gyro"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXRS450_Gyro", "type": "wpilib.ADXRS450_Gyro"}], "tooltip": "Reset the gyro.\n\nResets the gyro to a heading of zero. This can be used if there is\nsignificant drift in the gyro and it needs to be recalibrated after it has\nbeen running.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.ADXRS450_Gyro", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.AddressableLED.LEDData.ts b/src/blocks/generated/class_wpilib.AddressableLED.LEDData.ts
index 215164d5..ee9593d0 100644
--- a/src/blocks/generated/class_wpilib.AddressableLED.LEDData.ts
+++ b/src/blocks/generated/class_wpilib.AddressableLED.LEDData.ts
@@ -21,12 +21,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.AddressableLED.LEDData", "varType": "int", "importModule": "", "selfLabel": "lEDData", "selfType": "wpilib.AddressableLED.LEDData"}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData", "VAR": "g"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.AddressableLED.LEDData", "varType": "int", "importModule": "", "selfLabel": "lEDData", "selfType": "wpilib.AddressableLED.LEDData"}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData", "VAR": "r"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.AddressableLED.LEDData", "varType": "int", "importModule": "", "selfLabel": "lEDData", "selfType": "wpilib.AddressableLED.LEDData"}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData", "VAR": "r"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDData"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AddressableLED.LEDData", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDData"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AddressableLED.LEDData", "args": [{"name": "r", "type": "int"}, {"name": "g", "type": "int"}, {"name": "b", "type": "int"}], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDData", "type": "wpilib._wpilib.AddressableLED.LEDData"}, {"name": "h", "type": "int"}, {"name": "s", "type": "int"}, {"name": "v", "type": "int"}], "tooltip": "A helper method to set all values of the LED.\n\n:param h: the h value [0-180]\n:param s: the s value [0-255]\n:param v: the v value [0-255]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData", "FUNC": "setHSV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDData", "type": "wpilib._wpilib.AddressableLED.LEDData"}, {"name": "color", "type": "wpilib._wpilib.Color"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData", "FUNC": "setLED"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDData", "type": "wpilib._wpilib.AddressableLED.LEDData"}, {"name": "color", "type": "wpilib._wpilib.Color8Bit"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData", "FUNC": "setLED"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDData", "type": "wpilib._wpilib.AddressableLED.LEDData"}, {"name": "r", "type": "int"}, {"name": "g", "type": "int"}, {"name": "b", "type": "int"}], "tooltip": "A helper method to set all values of the LED.\n\n:param r: the r value [0-255]\n:param g: the g value [0-255]\n:param b: the b value [0-255]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData", "FUNC": "setRGB"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDData"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AddressableLED.LEDData", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDData"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AddressableLED.LEDData", "args": [{"name": "r", "type": "int"}, {"name": "g", "type": "int"}, {"name": "b", "type": "int"}], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDData", "type": "wpilib.AddressableLED.LEDData"}, {"name": "h", "type": "int"}, {"name": "s", "type": "int"}, {"name": "v", "type": "int"}], "tooltip": "A helper method to set all values of the LED.\n\n:param h: the h value [0-180]\n:param s: the s value [0-255]\n:param v: the v value [0-255]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData", "FUNC": "setHSV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDData", "type": "wpilib.AddressableLED.LEDData"}, {"name": "color", "type": "wpilib.Color"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData", "FUNC": "setLED"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDData", "type": "wpilib.AddressableLED.LEDData"}, {"name": "color", "type": "wpilib.Color8Bit"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData", "FUNC": "setLED"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDData", "type": "wpilib.AddressableLED.LEDData"}, {"name": "r", "type": "int"}, {"name": "g", "type": "int"}, {"name": "b", "type": "int"}], "tooltip": "A helper method to set all values of the LED.\n\n:param r: the r value [0-255]\n:param g: the g value [0-255]\n:param b: the b value [0-255]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED.LEDData", "FUNC": "setRGB"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.AddressableLED.ts b/src/blocks/generated/class_wpilib.AddressableLED.ts
index 9e464096..81642756 100644
--- a/src/blocks/generated/class_wpilib.AddressableLED.ts
+++ b/src/blocks/generated/class_wpilib.AddressableLED.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAddressableLED"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AddressableLED", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs a new driver for a specific port.\n\n:param port: the output port to use (Must be a PWM header)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLED", "type": "wpilib._wpilib.AddressableLED"}, {"name": "highTime0", "type": "wpimath.units.nanoseconds"}, {"name": "lowTime0", "type": "wpimath.units.nanoseconds"}, {"name": "highTime1", "type": "wpimath.units.nanoseconds"}, {"name": "lowTime1", "type": "wpimath.units.nanoseconds"}], "tooltip": "Sets the bit timing.\n\nBy default, the driver is set up to drive WS2812Bs, so nothing needs to\nbe set for those.\n\n:param highTime0: high time for 0 bit (default 400ns)\n:param lowTime0: low time for 0 bit (default 900ns)\n:param highTime1: high time for 1 bit (default 900ns)\n:param lowTime1: low time for 1 bit (default 600ns)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED", "FUNC": "setBitTiming"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLED", "type": "wpilib._wpilib.AddressableLED"}, {"name": "ledData", "type": "List[wpilib._wpilib.AddressableLED.LEDData]"}], "tooltip": "Sets the led output data.\n\nIf the output is enabled, this will start writing the next data cycle.\nIt is safe to call, even while output is enabled.\n\n:param ledData: the buffer to write", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED", "FUNC": "setData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLED", "type": "wpilib._wpilib.AddressableLED"}, {"name": "length", "type": "int"}], "tooltip": "Sets the length of the LED strip.\n\nCalling this is an expensive call, so its best to call it once, then\njust update data.\n\nThe max length is 5460 LEDs.\n\n:param length: the strip length", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED", "FUNC": "setLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLED", "type": "wpilib._wpilib.AddressableLED"}, {"name": "syncTime", "type": "wpimath.units.microseconds"}], "tooltip": "Sets the sync time.\n\nThe sync time is the time to hold output so LEDs enable. Default set for\nWS2812B.\n\n:param syncTime: the sync time (default 280us)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED", "FUNC": "setSyncTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLED", "type": "wpilib._wpilib.AddressableLED"}], "tooltip": "Starts the output.\n\nThe output writes continuously.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED", "FUNC": "start"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLED", "type": "wpilib._wpilib.AddressableLED"}], "tooltip": "Stops the output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED", "FUNC": "stop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAddressableLED"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AddressableLED", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs a new driver for a specific port.\n\n:param port: the output port to use (Must be a PWM header)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLED", "type": "wpilib.AddressableLED"}, {"name": "highTime0", "type": "wpimath.units.nanoseconds"}, {"name": "lowTime0", "type": "wpimath.units.nanoseconds"}, {"name": "highTime1", "type": "wpimath.units.nanoseconds"}, {"name": "lowTime1", "type": "wpimath.units.nanoseconds"}], "tooltip": "Sets the bit timing.\n\nBy default, the driver is set up to drive WS2812Bs, so nothing needs to\nbe set for those.\n\n:param highTime0: high time for 0 bit (default 400ns)\n:param lowTime0: low time for 0 bit (default 900ns)\n:param highTime1: high time for 1 bit (default 900ns)\n:param lowTime1: low time for 1 bit (default 600ns)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED", "FUNC": "setBitTiming"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLED", "type": "wpilib.AddressableLED"}, {"name": "ledData", "type": "List[wpilib._wpilib.AddressableLED.LEDData]"}], "tooltip": "Sets the led output data.\n\nIf the output is enabled, this will start writing the next data cycle.\nIt is safe to call, even while output is enabled.\n\n:param ledData: the buffer to write", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED", "FUNC": "setData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLED", "type": "wpilib.AddressableLED"}, {"name": "length", "type": "int"}], "tooltip": "Sets the length of the LED strip.\n\nCalling this is an expensive call, so its best to call it once, then\njust update data.\n\nThe max length is 5460 LEDs.\n\n:param length: the strip length", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED", "FUNC": "setLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLED", "type": "wpilib.AddressableLED"}, {"name": "syncTime", "type": "wpimath.units.microseconds"}], "tooltip": "Sets the sync time.\n\nThe sync time is the time to hold output so LEDs enable. Default set for\nWS2812B.\n\n:param syncTime: the sync time (default 280us)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED", "FUNC": "setSyncTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLED", "type": "wpilib.AddressableLED"}], "tooltip": "Starts the output.\n\nThe output writes continuously.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED", "FUNC": "start"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLED", "type": "wpilib.AddressableLED"}], "tooltip": "Stops the output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AddressableLED", "FUNC": "stop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Alert.ts b/src/blocks/generated/class_wpilib.Alert.ts
index 068ed3ee..07c9fb00 100644
--- a/src/blocks/generated/class_wpilib.Alert.ts
+++ b/src/blocks/generated/class_wpilib.Alert.ts
@@ -13,13 +13,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 10 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAlert"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Alert", "args": [{"name": "text", "type": "str"}, {"name": "type", "type": "wpilib._wpilib.Alert.AlertType"}], "tooltip": "Creates a new alert in the default group - \"Alerts\". If this is the first\nto be instantiated, the appropriate entries will be added to NetworkTables.\n\n:param text: Text to be displayed when the alert is active.\n:param type: Alert urgency level.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlertType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAlert"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Alert", "args": [{"name": "group", "type": "str"}, {"name": "text", "type": "str"}, {"name": "type", "type": "wpilib._wpilib.Alert.AlertType"}], "tooltip": "Creates a new alert. If this is the first to be instantiated in its group,\nthe appropriate entries will be added to NetworkTables.\n\n:param group: Group identifier, used as the entry name in NetworkTables.\n:param text: Text to be displayed when the alert is active.\n:param type: Alert urgency level.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlertType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "alert", "type": "wpilib._wpilib.Alert"}], "tooltip": "Gets whether the alert is active.\n\n:returns: whether the alert is active.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlert"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "alert", "type": "wpilib._wpilib.Alert"}], "tooltip": "Gets the current alert text.\n\n:returns: the current text.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert", "FUNC": "getText"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlert"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAlertType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.Alert.AlertType", "args": [{"name": "alert", "type": "wpilib._wpilib.Alert"}], "tooltip": "Get the type of this alert.\n\n:returns: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlert"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "alert", "type": "wpilib._wpilib.Alert"}, {"name": "active", "type": "bool"}], "tooltip": "Sets whether the alert should currently be displayed. This method can be\nsafely called periodically.\n\n:param active: Whether to display the alert.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlert"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "alert", "type": "wpilib._wpilib.Alert"}, {"name": "text", "type": "str"}], "tooltip": "Updates current alert text. Use this method to dynamically change the\ndisplayed alert, such as including more details about the detected problem.\n\n:param text: Text to be displayed when the alert is active.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert", "FUNC": "setText"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlert"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAlert"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Alert", "args": [{"name": "text", "type": "str"}, {"name": "type", "type": "wpilib.Alert.AlertType"}], "tooltip": "Creates a new alert in the default group - \"Alerts\". If this is the first\nto be instantiated, the appropriate entries will be added to NetworkTables.\n\n:param text: Text to be displayed when the alert is active.\n:param type: Alert urgency level.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlertType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAlert"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Alert", "args": [{"name": "group", "type": "str"}, {"name": "text", "type": "str"}, {"name": "type", "type": "wpilib.Alert.AlertType"}], "tooltip": "Creates a new alert. If this is the first to be instantiated in its group,\nthe appropriate entries will be added to NetworkTables.\n\n:param group: Group identifier, used as the entry name in NetworkTables.\n:param text: Text to be displayed when the alert is active.\n:param type: Alert urgency level.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlertType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "alert", "type": "wpilib.Alert"}], "tooltip": "Gets whether the alert is active.\n\n:returns: whether the alert is active.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlert"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "alert", "type": "wpilib.Alert"}], "tooltip": "Gets the current alert text.\n\n:returns: the current text.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert", "FUNC": "getText"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlert"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAlertType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.Alert.AlertType", "args": [{"name": "alert", "type": "wpilib.Alert"}], "tooltip": "Get the type of this alert.\n\n:returns: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlert"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "alert", "type": "wpilib.Alert"}, {"name": "active", "type": "bool"}], "tooltip": "Sets whether the alert should currently be displayed. This method can be\nsafely called periodically.\n\n:param active: Whether to display the alert.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlert"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "alert", "type": "wpilib.Alert"}, {"name": "text", "type": "str"}], "tooltip": "Updates current alert text. Use this method to dynamically change the\ndisplayed alert, such as including more details about the detected problem.\n\n:param text: Text to be displayed when the alert is active.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Alert", "FUNC": "setText"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAlert"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Alert.AlertType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Alert.AlertType", "ENUM_VALUE": "kError"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Alert.AlertType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Alert.AlertType", "ENUM_VALUE": "kInfo"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Alert.AlertType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Alert.AlertType", "ENUM_VALUE": "kWarning"}},
diff --git a/src/blocks/generated/class_wpilib.AnalogAccelerometer.ts b/src/blocks/generated/class_wpilib.AnalogAccelerometer.ts
index 8a0cfaf7..1fca047a 100644
--- a/src/blocks/generated/class_wpilib.AnalogAccelerometer.ts
+++ b/src/blocks/generated/class_wpilib.AnalogAccelerometer.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogAccelerometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogAccelerometer", "args": [{"name": "channel", "type": "int"}], "tooltip": "Create a new instance of an accelerometer.\n\nThe constructor allocates desired analog input.\n\n:param channel: The channel number for the analog input the accelerometer is\n connected to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogAccelerometer"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogAccelerometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogAccelerometer", "args": [{"name": "channel", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Create a new instance of Accelerometer from an existing AnalogInput.\n\nMake a new instance of accelerometer given an AnalogInput. This is\nparticularly useful if the port is going to be read as an analog channel as\nwell as through the Accelerometer class.\n\n:param channel: The existing AnalogInput object for the analog input the\n accelerometer is connected to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogAccelerometer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogAccelerometer", "type": "wpilib._wpilib.AnalogAccelerometer"}], "tooltip": "Return the acceleration in Gs.\n\nThe acceleration is returned units of Gs.\n\n:returns: The current acceleration of the sensor in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogAccelerometer", "FUNC": "getAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogAccelerometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogAccelerometer", "type": "wpilib._wpilib.AnalogAccelerometer"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogAccelerometer", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogAccelerometer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogAccelerometer", "type": "wpilib._wpilib.AnalogAccelerometer"}, {"name": "sensitivity", "type": "float"}], "tooltip": "Set the accelerometer sensitivity.\n\nThis sets the sensitivity of the accelerometer used for calculating the\nacceleration. The sensitivity varies by accelerometer model. There are\nconstants defined for various models.\n\n:param sensitivity: The sensitivity of accelerometer in Volts per G.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogAccelerometer", "FUNC": "setSensitivity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogAccelerometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogAccelerometer", "type": "wpilib._wpilib.AnalogAccelerometer"}, {"name": "zero", "type": "float"}], "tooltip": "Set the voltage that corresponds to 0 G.\n\nThe zero G voltage varies by accelerometer model. There are constants\ndefined for various models.\n\n:param zero: The zero G voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogAccelerometer", "FUNC": "setZero"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogAccelerometer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogAccelerometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogAccelerometer", "args": [{"name": "channel", "type": "int"}], "tooltip": "Create a new instance of an accelerometer.\n\nThe constructor allocates desired analog input.\n\n:param channel: The channel number for the analog input the accelerometer is\n connected to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogAccelerometer"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogAccelerometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogAccelerometer", "args": [{"name": "channel", "type": "wpilib.AnalogInput"}], "tooltip": "Create a new instance of Accelerometer from an existing AnalogInput.\n\nMake a new instance of accelerometer given an AnalogInput. This is\nparticularly useful if the port is going to be read as an analog channel as\nwell as through the Accelerometer class.\n\n:param channel: The existing AnalogInput object for the analog input the\n accelerometer is connected to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogAccelerometer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogAccelerometer", "type": "wpilib.AnalogAccelerometer"}], "tooltip": "Return the acceleration in Gs.\n\nThe acceleration is returned units of Gs.\n\n:returns: The current acceleration of the sensor in Gs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogAccelerometer", "FUNC": "getAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogAccelerometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogAccelerometer", "type": "wpilib.AnalogAccelerometer"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogAccelerometer", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogAccelerometer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogAccelerometer", "type": "wpilib.AnalogAccelerometer"}, {"name": "sensitivity", "type": "float"}], "tooltip": "Set the accelerometer sensitivity.\n\nThis sets the sensitivity of the accelerometer used for calculating the\nacceleration. The sensitivity varies by accelerometer model. There are\nconstants defined for various models.\n\n:param sensitivity: The sensitivity of accelerometer in Volts per G.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogAccelerometer", "FUNC": "setSensitivity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogAccelerometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogAccelerometer", "type": "wpilib.AnalogAccelerometer"}, {"name": "zero", "type": "float"}], "tooltip": "Set the voltage that corresponds to 0 G.\n\nThe zero G voltage varies by accelerometer model. There are constants\ndefined for various models.\n\n:param zero: The zero G voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogAccelerometer", "FUNC": "setZero"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogAccelerometer"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.AnalogEncoder.ts b/src/blocks/generated/class_wpilib.AnalogEncoder.ts
index 9f819155..eb55fd82 100644
--- a/src/blocks/generated/class_wpilib.AnalogEncoder.ts
+++ b/src/blocks/generated/class_wpilib.AnalogEncoder.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogEncoder", "args": [{"name": "channel", "type": "int"}], "tooltip": "Construct a new AnalogEncoder attached to a specific AnalogIn channel.\n\nThis has a fullRange of 1 and an expectedZero of 0.\n\n:param channel: the analog input channel to attach to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogEncoder", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Construct a new AnalogEncoder attached to a specific AnalogInput.\n\nThis has a fullRange of 1 and an expectedZero of 0.\n\n:param analogInput: the analog input to attach to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogEncoder", "args": [{"name": "channel", "type": "int"}, {"name": "fullRange", "type": "float"}, {"name": "expectedZero", "type": "float"}], "tooltip": "Construct a new AnalogEncoder attached to a specific AnalogIn channel.\n\n:param channel: the analog input channel to attach to\n:param fullRange: the value to report at maximum travel\n:param expectedZero: the reading where you would expect a 0 from get()", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogEncoder", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}, {"name": "fullRange", "type": "float"}, {"name": "expectedZero", "type": "float"}], "tooltip": "Construct a new AnalogEncoder attached to a specific AnalogInput.\n\n:param analogInput: the analog input to attach to\n:param fullRange: the value to report at maximum travel\n:param expectedZero: the reading where you would expect a 0 from get()", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogEncoder", "type": "wpilib._wpilib.AnalogEncoder"}], "tooltip": "Get the encoder value.\n\n:returns: the encoder value scaled by the full range input", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogEncoder", "type": "wpilib._wpilib.AnalogEncoder"}], "tooltip": "Get the channel number.\n\n:returns: The channel number.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogEncoder", "type": "wpilib._wpilib.AnalogEncoder"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoder"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogEncoder", "type": "wpilib._wpilib.AnalogEncoder"}, {"name": "inverted", "type": "bool"}], "tooltip": "Set if this encoder is inverted.\n\n:param inverted: true to invert the encoder, false otherwise", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogEncoder", "type": "wpilib._wpilib.AnalogEncoder"}, {"name": "min", "type": "float"}, {"name": "max", "type": "float"}], "tooltip": "Set the encoder voltage percentage range. Analog sensors are not always\nfully stable at the end of their travel ranges. Shrinking this range down\ncan help mitigate issues with that.\n\n:param min: minimum voltage percentage (0-1 range)\n:param max: maximum voltage percentage (0-1 range)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder", "FUNC": "setVoltagePercentageRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoder"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogEncoder", "args": [{"name": "channel", "type": "int"}], "tooltip": "Construct a new AnalogEncoder attached to a specific AnalogIn channel.\n\nThis has a fullRange of 1 and an expectedZero of 0.\n\n:param channel: the analog input channel to attach to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogEncoder", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Construct a new AnalogEncoder attached to a specific AnalogInput.\n\nThis has a fullRange of 1 and an expectedZero of 0.\n\n:param analogInput: the analog input to attach to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogEncoder", "args": [{"name": "channel", "type": "int"}, {"name": "fullRange", "type": "float"}, {"name": "expectedZero", "type": "float"}], "tooltip": "Construct a new AnalogEncoder attached to a specific AnalogIn channel.\n\n:param channel: the analog input channel to attach to\n:param fullRange: the value to report at maximum travel\n:param expectedZero: the reading where you would expect a 0 from get()", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogEncoder", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}, {"name": "fullRange", "type": "float"}, {"name": "expectedZero", "type": "float"}], "tooltip": "Construct a new AnalogEncoder attached to a specific AnalogInput.\n\n:param analogInput: the analog input to attach to\n:param fullRange: the value to report at maximum travel\n:param expectedZero: the reading where you would expect a 0 from get()", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogEncoder", "type": "wpilib.AnalogEncoder"}], "tooltip": "Get the encoder value.\n\n:returns: the encoder value scaled by the full range input", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogEncoder", "type": "wpilib.AnalogEncoder"}], "tooltip": "Get the channel number.\n\n:returns: The channel number.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogEncoder", "type": "wpilib.AnalogEncoder"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoder"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogEncoder", "type": "wpilib.AnalogEncoder"}, {"name": "inverted", "type": "bool"}], "tooltip": "Set if this encoder is inverted.\n\n:param inverted: true to invert the encoder, false otherwise", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogEncoder", "type": "wpilib.AnalogEncoder"}, {"name": "min", "type": "float"}, {"name": "max", "type": "float"}], "tooltip": "Set the encoder voltage percentage range. Analog sensors are not always\nfully stable at the end of their travel ranges. Shrinking this range down\ncan help mitigate issues with that.\n\n:param min: minimum voltage percentage (0-1 range)\n:param max: maximum voltage percentage (0-1 range)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogEncoder", "FUNC": "setVoltagePercentageRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoder"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.AnalogGyro.ts b/src/blocks/generated/class_wpilib.AnalogGyro.ts
index bcfc2258..970590b7 100644
--- a/src/blocks/generated/class_wpilib.AnalogGyro.ts
+++ b/src/blocks/generated/class_wpilib.AnalogGyro.ts
@@ -19,22 +19,22 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.AnalogGyro", "varType": "float", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "VAR": "kCalibrationSampleTime"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.AnalogGyro", "varType": "float", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "VAR": "kDefaultVoltsPerDegreePerSecond"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.AnalogGyro", "varType": "float", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "VAR": "kSamplesPerSecond"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogGyro"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogGyro", "args": [{"name": "channel", "type": "int"}], "tooltip": "%Gyro constructor using the Analog Input channel number.\n\n:param channel: The analog channel the gyro is connected to. Gyros can only\n be used on on-board Analog Inputs 0-1.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogGyro"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogGyro", "args": [{"name": "channel", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "%Gyro constructor with a precreated AnalogInput object.\n\nUse this constructor when the analog channel needs to be shared.\nThis object will not clean up the AnalogInput object when using this\nconstructor.\n\n:param channel: A pointer to the AnalogInput object that the gyro is\n connected to.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogGyro"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogGyro", "args": [{"name": "channel", "type": "int"}, {"name": "center", "type": "int"}, {"name": "offset", "type": "float"}], "tooltip": "%Gyro constructor using the Analog Input channel number with parameters for\npresetting the center and offset values. Bypasses calibration.\n\n:param channel: The analog channel the gyro is connected to. Gyros can only\n be used on on-board Analog Inputs 0-1.\n:param center: Preset uncalibrated value to use as the accumulator center\n value.\n:param offset: Preset uncalibrated value to use as the gyro offset.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogGyro"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogGyro", "args": [{"name": "channel", "type": "wpilib._wpilib.AnalogInput"}, {"name": "center", "type": "int"}, {"name": "offset", "type": "float"}], "tooltip": "%Gyro constructor with a precreated AnalogInput object and calibrated\nparameters.\n\nUse this constructor when the analog channel needs to be shared.\nThis object will not clean up the AnalogInput object when using this\nconstructor.\n\n:param channel: A pointer to the AnalogInput object that the gyro is\n connected to.\n:param center: Preset uncalibrated value to use as the accumulator center\n value.\n:param offset: Preset uncalibrated value to use as the gyro offset.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyro", "type": "wpilib._wpilib.AnalogGyro"}], "tooltip": "Calibrate the gyro by running for a number of samples and computing the\ncenter value. Then use the center value as the Accumulator center value for\nsubsequent measurements.\n\nIt's important to make sure that the robot is not moving while the\ncentering calculations are in progress, this is typically done when the\nrobot is first turned on while it's sitting at rest before the competition\nstarts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "calibrate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogInput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.AnalogInput", "args": [{"name": "analogGyro", "type": "wpilib._wpilib.AnalogGyro"}], "tooltip": "Gets the analog input for the gyro.\n\n:returns: AnalogInput", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "getAnalogInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogGyro", "type": "wpilib._wpilib.AnalogGyro"}], "tooltip": "Return the actual angle in degrees that the robot is currently facing.\n\nThe angle is based on the current accumulator value corrected by the\noversampling rate, the gyro type and the A/D calibration values. The angle\nis continuous, that is it will continue from 360->361 degrees. This allows\nalgorithms that wouldn't want to see a discontinuity in the gyro output as\nit sweeps from 360 to 0 on the second time around.\n\n:returns: The current heading of the robot in degrees. This heading is based\n on integration of the returned rate from the gyro.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogGyro", "type": "wpilib._wpilib.AnalogGyro"}], "tooltip": "Return the gyro center value. If run after calibration,\nthe center value can be used as a preset later.\n\n:returns: the current center value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "getCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogGyro", "type": "wpilib._wpilib.AnalogGyro"}], "tooltip": "Return the gyro offset value. If run after calibration,\nthe offset value can be used as a preset later.\n\n:returns: the current offset value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "getOffset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogGyro", "type": "wpilib._wpilib.AnalogGyro"}], "tooltip": "Return the rate of rotation of the gyro\n\nThe rate is based on the most recent reading of the gyro analog value\n\n:returns: the current rate in degrees per second", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "analogGyro", "type": "wpilib._wpilib.AnalogGyro"}], "tooltip": "Return the heading of the robot as a Rotation2d.\n\nThe angle is continuous, that is it will continue from 360 to 361 degrees.\nThis allows algorithms that wouldn't want to see a discontinuity in the\ngyro output as it sweeps past from 360 to 0 on the second time around.\n\nThe angle is expected to increase as the gyro turns counterclockwise when\nlooked at from the top. It needs to follow the NWU axis convention.\n\n:returns: the current heading of the robot as a Rotation2d. This heading is\n based on integration of the returned rate from the gyro.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "getRotation2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyro", "type": "wpilib._wpilib.AnalogGyro"}], "tooltip": "Initialize the gyro.\n\nCalibration is handled by Calibrate().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "initGyro"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyro", "type": "wpilib._wpilib.AnalogGyro"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyro", "type": "wpilib._wpilib.AnalogGyro"}], "tooltip": "Reset the gyro.\n\nResets the gyro to a heading of zero. This can be used if there is\nsignificant drift in the gyro and it needs to be recalibrated after it has\nbeen running.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyro", "type": "wpilib._wpilib.AnalogGyro"}, {"name": "volts", "type": "float"}], "tooltip": "Set the size of the neutral zone.\n\nAny voltage from the gyro less than this amount from the center is\nconsidered stationary. Setting a deadband will decrease the amount of\ndrift when the gyro isn't rotating, but will make it less accurate.\n\n:param volts: The size of the deadband in volts", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "setDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyro", "type": "wpilib._wpilib.AnalogGyro"}, {"name": "voltsPerDegreePerSecond", "type": "float"}], "tooltip": "Set the gyro sensitivity.\n\nThis takes the number of volts/degree/second sensitivity of the gyro and\nuses it in subsequent calculations to allow the code to work with multiple\ngyros. This value is typically found in the gyro datasheet.\n\n:param voltsPerDegreePerSecond: The sensitivity in Volts/degree/second", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "setSensitivity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogGyro"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogGyro", "args": [{"name": "channel", "type": "int"}], "tooltip": "%Gyro constructor using the Analog Input channel number.\n\n:param channel: The analog channel the gyro is connected to. Gyros can only\n be used on on-board Analog Inputs 0-1.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogGyro"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogGyro", "args": [{"name": "channel", "type": "wpilib.AnalogInput"}], "tooltip": "%Gyro constructor with a precreated AnalogInput object.\n\nUse this constructor when the analog channel needs to be shared.\nThis object will not clean up the AnalogInput object when using this\nconstructor.\n\n:param channel: A pointer to the AnalogInput object that the gyro is\n connected to.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogGyro"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogGyro", "args": [{"name": "channel", "type": "int"}, {"name": "center", "type": "int"}, {"name": "offset", "type": "float"}], "tooltip": "%Gyro constructor using the Analog Input channel number with parameters for\npresetting the center and offset values. Bypasses calibration.\n\n:param channel: The analog channel the gyro is connected to. Gyros can only\n be used on on-board Analog Inputs 0-1.\n:param center: Preset uncalibrated value to use as the accumulator center\n value.\n:param offset: Preset uncalibrated value to use as the gyro offset.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogGyro"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogGyro", "args": [{"name": "channel", "type": "wpilib.AnalogInput"}, {"name": "center", "type": "int"}, {"name": "offset", "type": "float"}], "tooltip": "%Gyro constructor with a precreated AnalogInput object and calibrated\nparameters.\n\nUse this constructor when the analog channel needs to be shared.\nThis object will not clean up the AnalogInput object when using this\nconstructor.\n\n:param channel: A pointer to the AnalogInput object that the gyro is\n connected to.\n:param center: Preset uncalibrated value to use as the accumulator center\n value.\n:param offset: Preset uncalibrated value to use as the gyro offset.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyro", "type": "wpilib.AnalogGyro"}], "tooltip": "Calibrate the gyro by running for a number of samples and computing the\ncenter value. Then use the center value as the Accumulator center value for\nsubsequent measurements.\n\nIt's important to make sure that the robot is not moving while the\ncentering calculations are in progress, this is typically done when the\nrobot is first turned on while it's sitting at rest before the competition\nstarts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "calibrate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogInput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.AnalogInput", "args": [{"name": "analogGyro", "type": "wpilib.AnalogGyro"}], "tooltip": "Gets the analog input for the gyro.\n\n:returns: AnalogInput", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "getAnalogInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogGyro", "type": "wpilib.AnalogGyro"}], "tooltip": "Return the actual angle in degrees that the robot is currently facing.\n\nThe angle is based on the current accumulator value corrected by the\noversampling rate, the gyro type and the A/D calibration values. The angle\nis continuous, that is it will continue from 360->361 degrees. This allows\nalgorithms that wouldn't want to see a discontinuity in the gyro output as\nit sweeps from 360 to 0 on the second time around.\n\n:returns: The current heading of the robot in degrees. This heading is based\n on integration of the returned rate from the gyro.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogGyro", "type": "wpilib.AnalogGyro"}], "tooltip": "Return the gyro center value. If run after calibration,\nthe center value can be used as a preset later.\n\n:returns: the current center value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "getCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogGyro", "type": "wpilib.AnalogGyro"}], "tooltip": "Return the gyro offset value. If run after calibration,\nthe offset value can be used as a preset later.\n\n:returns: the current offset value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "getOffset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogGyro", "type": "wpilib.AnalogGyro"}], "tooltip": "Return the rate of rotation of the gyro\n\nThe rate is based on the most recent reading of the gyro analog value\n\n:returns: the current rate in degrees per second", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "analogGyro", "type": "wpilib.AnalogGyro"}], "tooltip": "Return the heading of the robot as a Rotation2d.\n\nThe angle is continuous, that is it will continue from 360 to 361 degrees.\nThis allows algorithms that wouldn't want to see a discontinuity in the\ngyro output as it sweeps past from 360 to 0 on the second time around.\n\nThe angle is expected to increase as the gyro turns counterclockwise when\nlooked at from the top. It needs to follow the NWU axis convention.\n\n:returns: the current heading of the robot as a Rotation2d. This heading is\n based on integration of the returned rate from the gyro.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "getRotation2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyro", "type": "wpilib.AnalogGyro"}], "tooltip": "Initialize the gyro.\n\nCalibration is handled by Calibrate().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "initGyro"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyro", "type": "wpilib.AnalogGyro"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyro", "type": "wpilib.AnalogGyro"}], "tooltip": "Reset the gyro.\n\nResets the gyro to a heading of zero. This can be used if there is\nsignificant drift in the gyro and it needs to be recalibrated after it has\nbeen running.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyro", "type": "wpilib.AnalogGyro"}, {"name": "volts", "type": "float"}], "tooltip": "Set the size of the neutral zone.\n\nAny voltage from the gyro less than this amount from the center is\nconsidered stationary. Setting a deadband will decrease the amount of\ndrift when the gyro isn't rotating, but will make it less accurate.\n\n:param volts: The size of the deadband in volts", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "setDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyro", "type": "wpilib.AnalogGyro"}, {"name": "voltsPerDegreePerSecond", "type": "float"}], "tooltip": "Set the gyro sensitivity.\n\nThis takes the number of volts/degree/second sensitivity of the gyro and\nuses it in subsequent calculations to allow the code to work with multiple\ngyros. This value is typically found in the gyro datasheet.\n\n:param voltsPerDegreePerSecond: The sensitivity in Volts/degree/second", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogGyro", "FUNC": "setSensitivity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.AnalogInput.ts b/src/blocks/generated/class_wpilib.AnalogInput.ts
index 2e9c2d87..d9254672 100644
--- a/src/blocks/generated/class_wpilib.AnalogInput.ts
+++ b/src/blocks/generated/class_wpilib.AnalogInput.ts
@@ -15,31 +15,31 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.AnalogInput", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "VAR": "kAccumulatorModuleNumber"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.AnalogInput", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "VAR": "kAccumulatorNumChannels"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogInput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogInput", "args": [{"name": "channel", "type": "int"}], "tooltip": "Construct an analog input.\n\n:param channel: The channel number on the roboRIO to represent. 0-3 are\n on-board 4-7 are on the MXP port.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Read the number of accumulated values.\n\nRead the count of the accumulated values since the accumulator was last\nReset().\n\n:returns: The number of times samples from the channel were accumulated.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getAccumulatorCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[int, int]", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Read the accumulated value and the number of accumulated values atomically.\n\nThis function reads the value and count from the FPGA atomically.\nThis can be used for averaging.\n\n:param value: Reference to the 64-bit accumulated output.\n:param count: Reference to the number of accumulation cycles.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getAccumulatorOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Read the accumulated value.\n\nRead the value that has been accumulating.\nThe accumulator is attached after the oversample and average engine.\n\n:returns: The 64-bit value accumulated since the last Reset().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getAccumulatorValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Get the number of averaging bits previously configured.\n\nThis gets the number of averaging bits from the FPGA. The actual number of\naveraged samples is 2^bits. The averaging is done automatically in the\nFPGA.\n\n:returns: Number of bits of averaging previously configured.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getAverageBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Get a sample from the output of the oversample and average engine for this\nchannel.\n\nThe sample is 12-bit + the bits configured in SetOversampleBits().\nThe value configured in SetAverageBits() will cause this value to be\naveraged 2**bits number of samples.\n\nThis is not a sliding window. The sample will not change until\n2**(OversampleBits + AverageBits) samples have been acquired from the\nmodule on this channel.\n\nUse GetAverageVoltage() to get the analog value in calibrated units.\n\n:returns: A sample from the oversample and average engine for this channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getAverageValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Get a scaled sample from the output of the oversample and average engine\nfor this channel.\n\nThe value is scaled to units of Volts using the calibrated scaling data\nfrom GetLSBWeight() and GetOffset().\n\nUsing oversampling will cause this value to be higher resolution, but it\nwill update more slowly.\n\nUsing averaging will cause this value to be more stable, but it will update\nmore slowly.\n\n:returns: A scaled sample from the output of the oversample and average\n engine for this channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getAverageVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Get the channel number.\n\n:returns: The channel number.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Get the factory scaling least significant bit weight constant.\n\nVolts = ((LSB_Weight * 1e-9) * raw) - (Offset * 1e-9)\n\n:returns: Least significant bit weight.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getLSBWeight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Get the factory scaling offset constant.\n\nVolts = ((LSB_Weight * 1e-9) * raw) - (Offset * 1e-9)\n\n:returns: Offset constant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getOffset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Get the number of oversample bits previously configured.\n\nThis gets the number of oversample bits from the FPGA. The actual number of\noversampled values is 2^bits. The oversampling is done automatically in the\nFPGA.\n\n:returns: Number of bits of oversampling previously configured.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getOversampleBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogInput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogInput", "args": [{"name": "channel", "type": "int"}], "tooltip": "Construct an analog input.\n\n:param channel: The channel number on the roboRIO to represent. 0-3 are\n on-board 4-7 are on the MXP port.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Read the number of accumulated values.\n\nRead the count of the accumulated values since the accumulator was last\nReset().\n\n:returns: The number of times samples from the channel were accumulated.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getAccumulatorCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[int, int]", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Read the accumulated value and the number of accumulated values atomically.\n\nThis function reads the value and count from the FPGA atomically.\nThis can be used for averaging.\n\n:param value: Reference to the 64-bit accumulated output.\n:param count: Reference to the number of accumulation cycles.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getAccumulatorOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Read the accumulated value.\n\nRead the value that has been accumulating.\nThe accumulator is attached after the oversample and average engine.\n\n:returns: The 64-bit value accumulated since the last Reset().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getAccumulatorValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Get the number of averaging bits previously configured.\n\nThis gets the number of averaging bits from the FPGA. The actual number of\naveraged samples is 2^bits. The averaging is done automatically in the\nFPGA.\n\n:returns: Number of bits of averaging previously configured.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getAverageBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Get a sample from the output of the oversample and average engine for this\nchannel.\n\nThe sample is 12-bit + the bits configured in SetOversampleBits().\nThe value configured in SetAverageBits() will cause this value to be\naveraged 2**bits number of samples.\n\nThis is not a sliding window. The sample will not change until\n2**(OversampleBits + AverageBits) samples have been acquired from the\nmodule on this channel.\n\nUse GetAverageVoltage() to get the analog value in calibrated units.\n\n:returns: A sample from the oversample and average engine for this channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getAverageValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Get a scaled sample from the output of the oversample and average engine\nfor this channel.\n\nThe value is scaled to units of Volts using the calibrated scaling data\nfrom GetLSBWeight() and GetOffset().\n\nUsing oversampling will cause this value to be higher resolution, but it\nwill update more slowly.\n\nUsing averaging will cause this value to be more stable, but it will update\nmore slowly.\n\n:returns: A scaled sample from the output of the oversample and average\n engine for this channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getAverageVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Get the channel number.\n\n:returns: The channel number.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Get the factory scaling least significant bit weight constant.\n\nVolts = ((LSB_Weight * 1e-9) * raw) - (Offset * 1e-9)\n\n:returns: Least significant bit weight.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getLSBWeight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Get the factory scaling offset constant.\n\nVolts = ((LSB_Weight * 1e-9) * raw) - (Offset * 1e-9)\n\n:returns: Offset constant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getOffset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Get the number of oversample bits previously configured.\n\nThis gets the number of oversample bits from the FPGA. The actual number of\noversampled values is 2^bits. The oversampling is done automatically in the\nFPGA.\n\n:returns: Number of bits of oversampling previously configured.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getOversampleBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "float", "args": [], "tooltip": "Get the current sample rate for all channels\n\n:returns: Sample rate.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getSampleRate"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Get a sample straight from this channel.\n\nThe sample is a 12-bit value representing the 0V to 5V range of the A/D\nconverter in the module. The units are in A/D converter codes. Use\nGetVoltage() to get the analog value in calibrated units.\n\n:returns: A sample straight from this channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Get a scaled sample straight from this channel.\n\nThe value is scaled to units of Volts using the calibrated scaling data\nfrom GetLSBWeight() and GetOffset().\n\n:returns: A scaled sample straight from this channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Initialize the accumulator.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "initAccumulator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Is the channel attached to an accumulator.\n\n:returns: The analog input is attached to an accumulator.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "isAccumulatorChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Resets the accumulator to the initial value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "resetAccumulator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}, {"name": "center", "type": "int"}], "tooltip": "Set the center value of the accumulator.\n\nThe center value is subtracted from each A/D value before it is added to\nthe accumulator. This is used for the center value of devices like gyros\nand accelerometers to take the device offset into account when integrating.\n\nThis center value is based on the output of the oversampled and averaged\nsource from the accumulator channel. Because of this, any non-zero\noversample bits will affect the size of the value for this field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setAccumulatorCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}, {"name": "deadband", "type": "int"}], "tooltip": "Set the accumulator's deadband.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setAccumulatorDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}, {"name": "value", "type": "int"}], "tooltip": "Set an initial value for the accumulator.\n\nThis will be added to all values returned to the user.\n\n:param value: The value that the accumulator should start from when reset.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setAccumulatorInitialValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}, {"name": "bits", "type": "int"}], "tooltip": "Set the number of averaging bits.\n\nThis sets the number of averaging bits. The actual number of averaged\nsamples is 2^bits.\n\nUse averaging to improve the stability of your measurement at the expense\nof sampling rate. The averaging is done automatically in the FPGA.\n\n:param bits: Number of bits of averaging.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setAverageBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}, {"name": "bits", "type": "int"}], "tooltip": "Set the number of oversample bits.\n\nThis sets the number of oversample bits. The actual number of oversampled\nvalues is 2^bits. Use oversampling to improve the resolution of your\nmeasurements at the expense of sampling rate. The oversampling is done\nautomatically in the FPGA.\n\n:param bits: Number of bits of oversampling.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setOversampleBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Get a sample straight from this channel.\n\nThe sample is a 12-bit value representing the 0V to 5V range of the A/D\nconverter in the module. The units are in A/D converter codes. Use\nGetVoltage() to get the analog value in calibrated units.\n\n:returns: A sample straight from this channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Get a scaled sample straight from this channel.\n\nThe value is scaled to units of Volts using the calibrated scaling data\nfrom GetLSBWeight() and GetOffset().\n\n:returns: A scaled sample straight from this channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Initialize the accumulator.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "initAccumulator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Is the channel attached to an accumulator.\n\n:returns: The analog input is attached to an accumulator.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "isAccumulatorChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Resets the accumulator to the initial value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "resetAccumulator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}, {"name": "center", "type": "int"}], "tooltip": "Set the center value of the accumulator.\n\nThe center value is subtracted from each A/D value before it is added to\nthe accumulator. This is used for the center value of devices like gyros\nand accelerometers to take the device offset into account when integrating.\n\nThis center value is based on the output of the oversampled and averaged\nsource from the accumulator channel. Because of this, any non-zero\noversample bits will affect the size of the value for this field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setAccumulatorCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}, {"name": "deadband", "type": "int"}], "tooltip": "Set the accumulator's deadband.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setAccumulatorDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}, {"name": "value", "type": "int"}], "tooltip": "Set an initial value for the accumulator.\n\nThis will be added to all values returned to the user.\n\n:param value: The value that the accumulator should start from when reset.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setAccumulatorInitialValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}, {"name": "bits", "type": "int"}], "tooltip": "Set the number of averaging bits.\n\nThis sets the number of averaging bits. The actual number of averaged\nsamples is 2^bits.\n\nUse averaging to improve the stability of your measurement at the expense\nof sampling rate. The averaging is done automatically in the FPGA.\n\n:param bits: Number of bits of averaging.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setAverageBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}, {"name": "bits", "type": "int"}], "tooltip": "Set the number of oversample bits.\n\nThis sets the number of oversample bits. The actual number of oversampled\nvalues is 2^bits. Use oversampling to improve the resolution of your\nmeasurements at the expense of sampling rate. The oversampling is done\nautomatically in the FPGA.\n\n:param bits: Number of bits of oversampling.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setOversampleBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "samplesPerSecond", "type": "float"}], "tooltip": "Set the sample rate per channel for all analog channels.\n\nThe maximum rate is 500kS/s divided by the number of channels in use.\nThis is 62500 samples/s per channel.\n\n:param samplesPerSecond: The number of samples per second.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setSampleRate"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}, {"name": "device", "type": "int"}], "tooltip": "Indicates this input is used by a simulated device.\n\n:param device: simulated device handle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setSimDevice"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}, {"name": "device", "type": "int"}], "tooltip": "Indicates this input is used by a simulated device.\n\n:param device: simulated device handle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogInput", "FUNC": "setSimDevice"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.AnalogOutput.ts b/src/blocks/generated/class_wpilib.AnalogOutput.ts
index cad42476..d8bad9a1 100644
--- a/src/blocks/generated/class_wpilib.AnalogOutput.ts
+++ b/src/blocks/generated/class_wpilib.AnalogOutput.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogOutput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogOutput", "args": [{"name": "channel", "type": "int"}], "tooltip": "Construct an analog output on the given channel.\n\nAll analog outputs are located on the MXP port.\n\n:param channel: The channel number on the roboRIO to represent.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogOutput"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogOutput", "type": "wpilib._wpilib.AnalogOutput"}], "tooltip": "Get the channel of this AnalogOutput.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogOutput", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogOutput", "type": "wpilib._wpilib.AnalogOutput"}], "tooltip": "Get the voltage of the analog output.\n\n:returns: The value in Volts, from 0.0 to +5.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogOutput", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogOutput", "type": "wpilib._wpilib.AnalogOutput"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogOutput", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutput"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogOutput", "type": "wpilib._wpilib.AnalogOutput"}, {"name": "voltage", "type": "float"}], "tooltip": "Set the value of the analog output.\n\n:param voltage: The output value in Volts, from 0.0 to +5.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogOutput", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutput"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogOutput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogOutput", "args": [{"name": "channel", "type": "int"}], "tooltip": "Construct an analog output on the given channel.\n\nAll analog outputs are located on the MXP port.\n\n:param channel: The channel number on the roboRIO to represent.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogOutput"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogOutput", "type": "wpilib.AnalogOutput"}], "tooltip": "Get the channel of this AnalogOutput.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogOutput", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogOutput", "type": "wpilib.AnalogOutput"}], "tooltip": "Get the voltage of the analog output.\n\n:returns: The value in Volts, from 0.0 to +5.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogOutput", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogOutput", "type": "wpilib.AnalogOutput"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogOutput", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutput"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogOutput", "type": "wpilib.AnalogOutput"}, {"name": "voltage", "type": "float"}], "tooltip": "Set the value of the analog output.\n\n:param voltage: The output value in Volts, from 0.0 to +5.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogOutput", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutput"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.AnalogPotentiometer.ts b/src/blocks/generated/class_wpilib.AnalogPotentiometer.ts
index e5372770..57869b8c 100644
--- a/src/blocks/generated/class_wpilib.AnalogPotentiometer.ts
+++ b/src/blocks/generated/class_wpilib.AnalogPotentiometer.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogPotentiometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogPotentiometer", "args": [{"name": "channel", "type": "int"}, {"name": "fullRange", "type": "float"}, {"name": "offset", "type": "float"}], "tooltip": "Construct an Analog Potentiometer object from a channel number.\n\nUse the fullRange and offset values so that the output produces meaningful\nvalues. I.E: you have a 270 degree potentiometer and you want the output to\nbe degrees with the halfway point as 0 degrees. The fullRange value is\n270.0 degrees and the offset is -135.0 since the halfway point after\nscaling is 135 degrees.\n\nThis will calculate the result from the fullRange times the fraction of the\nsupply voltage, plus the offset.\n\n:param channel: The Analog Input channel number on the roboRIO the\n potentiometer is plugged into. 0-3 are on-board and 4-7\n are on the MXP port.\n:param fullRange: The value (in desired units) representing the full\n 0-5V range of the input.\n:param offset: The value (in desired units) representing the\n angular output at 0V.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogPotentiometer"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogPotentiometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogPotentiometer", "args": [{"name": "input", "type": "wpilib._wpilib.AnalogInput"}, {"name": "fullRange", "type": "float"}, {"name": "offset", "type": "float"}], "tooltip": "Construct an Analog Potentiometer object from an existing Analog Input\npointer.\n\nUse the fullRange and offset values so that the output produces meaningful\nvalues. I.E: you have a 270 degree potentiometer and you want the output to\nbe degrees with the halfway point as 0 degrees. The fullRange value is\n270.0 degrees and the offset is -135.0 since the halfway point after\nscaling is 135 degrees.\n\nThis will calculate the result from the fullRange times the fraction of the\nsupply voltage, plus the offset.\n\n:param input: The existing Analog Input pointer\n:param fullRange: The value (in desired units) representing the full\n 0-5V range of the input.\n:param offset: The value (in desired units) representing the\n angular output at 0V.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogPotentiometer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogPotentiometer", "type": "wpilib._wpilib.AnalogPotentiometer"}], "tooltip": "Get the current reading of the potentiometer.\n\n:returns: The current position of the potentiometer (in the units used for\n fullRange and offset).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogPotentiometer", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogPotentiometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogPotentiometer", "type": "wpilib._wpilib.AnalogPotentiometer"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogPotentiometer", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogPotentiometer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogPotentiometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogPotentiometer", "args": [{"name": "channel", "type": "int"}, {"name": "fullRange", "type": "float"}, {"name": "offset", "type": "float"}], "tooltip": "Construct an Analog Potentiometer object from a channel number.\n\nUse the fullRange and offset values so that the output produces meaningful\nvalues. I.E: you have a 270 degree potentiometer and you want the output to\nbe degrees with the halfway point as 0 degrees. The fullRange value is\n270.0 degrees and the offset is -135.0 since the halfway point after\nscaling is 135 degrees.\n\nThis will calculate the result from the fullRange times the fraction of the\nsupply voltage, plus the offset.\n\n:param channel: The Analog Input channel number on the roboRIO the\n potentiometer is plugged into. 0-3 are on-board and 4-7\n are on the MXP port.\n:param fullRange: The value (in desired units) representing the full\n 0-5V range of the input.\n:param offset: The value (in desired units) representing the\n angular output at 0V.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogPotentiometer"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogPotentiometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogPotentiometer", "args": [{"name": "input", "type": "wpilib.AnalogInput"}, {"name": "fullRange", "type": "float"}, {"name": "offset", "type": "float"}], "tooltip": "Construct an Analog Potentiometer object from an existing Analog Input\npointer.\n\nUse the fullRange and offset values so that the output produces meaningful\nvalues. I.E: you have a 270 degree potentiometer and you want the output to\nbe degrees with the halfway point as 0 degrees. The fullRange value is\n270.0 degrees and the offset is -135.0 since the halfway point after\nscaling is 135 degrees.\n\nThis will calculate the result from the fullRange times the fraction of the\nsupply voltage, plus the offset.\n\n:param input: The existing Analog Input pointer\n:param fullRange: The value (in desired units) representing the full\n 0-5V range of the input.\n:param offset: The value (in desired units) representing the\n angular output at 0V.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogPotentiometer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogPotentiometer", "type": "wpilib.AnalogPotentiometer"}], "tooltip": "Get the current reading of the potentiometer.\n\n:returns: The current position of the potentiometer (in the units used for\n fullRange and offset).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogPotentiometer", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogPotentiometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogPotentiometer", "type": "wpilib.AnalogPotentiometer"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogPotentiometer", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogPotentiometer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.AnalogTrigger.ts b/src/blocks/generated/class_wpilib.AnalogTrigger.ts
index c4d440b8..6444810c 100644
--- a/src/blocks/generated/class_wpilib.AnalogTrigger.ts
+++ b/src/blocks/generated/class_wpilib.AnalogTrigger.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTrigger"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogTrigger", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for an analog trigger given a channel number.\n\n:param channel: The channel number on the roboRIO to represent. 0-3 are\n on-board 4-7 are on the MXP port.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTrigger"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogTrigger", "args": [{"name": "input", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Construct an analog trigger using an existing analog input.\n\nThis should be used in the case of sharing an analog channel between the\ntrigger and an analog input object.\n\n:param input: A shared_ptr to the existing AnalogInput object", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTrigger"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogTrigger", "args": [{"name": "dutyCycle", "type": "wpilib._wpilib.DutyCycle"}], "tooltip": "Construct an analog trigger using an existing duty cycle input.\n\n:param dutyCycle: A shared_ptr to the existing DutyCycle object", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.AnalogTriggerOutput", "args": [{"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}, {"name": "type", "type": "wpilib._wpilib.AnalogTriggerType"}], "tooltip": "Creates an AnalogTriggerOutput object.\n\n:param type: An enum of the type of output object to create.\n\n:returns: A pointer to a new AnalogTriggerOutput object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "createOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}], "tooltip": "Return the InWindow output of the analog trigger.\n\nTrue if the analog input is between the upper and lower limits.\n\n:returns: True if the analog input is between the upper and lower limits.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "getInWindow"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}], "tooltip": "Return the index of the analog trigger.\n\nThis is the FPGA index of this analog trigger instance.\n\n:returns: The index of the analog trigger.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "getIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}], "tooltip": "Return the TriggerState output of the analog trigger.\n\nTrue if above upper limit.\nFalse if below lower limit.\nIf in Hysteresis, maintain previous state.\n\n:returns: True if above upper limit. False if below lower limit. If in\n Hysteresis, maintain previous state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "getTriggerState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}, {"name": "useAveragedValue", "type": "bool"}], "tooltip": "Configure the analog trigger to use the averaged vs. raw values.\n\nIf the value is true, then the averaged value is selected for the analog\ntrigger, otherwise the immediate value is used.\n\n:param useAveragedValue: If true, use the Averaged value, otherwise use the\n instantaneous reading", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "setAveraged"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}, {"name": "useFilteredValue", "type": "bool"}], "tooltip": "Configure the analog trigger to use a filtered value.\n\nThe analog trigger will operate with a 3 point average rejection filter.\nThis is designed to help with 360 degree pot applications for the period\nwhere the pot crosses through zero.\n\n:param useFilteredValue: If true, use the 3 point rejection filter,\n otherwise use the unfiltered value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "setFiltered"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}, {"name": "lower", "type": "float"}, {"name": "upper", "type": "float"}], "tooltip": "Set the upper and lower duty cycle limits of the analog trigger.\n\nThe limits are given as floating point values between 0 and 1.\n\n:param lower: The lower limit of the trigger in percentage.\n:param upper: The upper limit of the trigger in percentage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "setLimitsDutyCycle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}, {"name": "lower", "type": "int"}, {"name": "upper", "type": "int"}], "tooltip": "Set the upper and lower limits of the analog trigger.\n\nThe limits are given in ADC codes. If oversampling is used, the units must\nbe scaled appropriately.\n\n:param lower: The lower limit of the trigger in ADC codes (12-bit values).\n:param upper: The upper limit of the trigger in ADC codes (12-bit values).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "setLimitsRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}, {"name": "lower", "type": "float"}, {"name": "upper", "type": "float"}], "tooltip": "Set the upper and lower limits of the analog trigger.\n\nThe limits are given as floating point voltage values.\n\n:param lower: The lower limit of the trigger in Volts.\n:param upper: The upper limit of the trigger in Volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "setLimitsVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTrigger"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogTrigger", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for an analog trigger given a channel number.\n\n:param channel: The channel number on the roboRIO to represent. 0-3 are\n on-board 4-7 are on the MXP port.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTrigger"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogTrigger", "args": [{"name": "input", "type": "wpilib.AnalogInput"}], "tooltip": "Construct an analog trigger using an existing analog input.\n\nThis should be used in the case of sharing an analog channel between the\ntrigger and an analog input object.\n\n:param input: A shared_ptr to the existing AnalogInput object", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTrigger"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogTrigger", "args": [{"name": "dutyCycle", "type": "wpilib.DutyCycle"}], "tooltip": "Construct an analog trigger using an existing duty cycle input.\n\n:param dutyCycle: A shared_ptr to the existing DutyCycle object", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.AnalogTriggerOutput", "args": [{"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}, {"name": "type", "type": "wpilib.AnalogTriggerType"}], "tooltip": "Creates an AnalogTriggerOutput object.\n\n:param type: An enum of the type of output object to create.\n\n:returns: A pointer to a new AnalogTriggerOutput object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "createOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}], "tooltip": "Return the InWindow output of the analog trigger.\n\nTrue if the analog input is between the upper and lower limits.\n\n:returns: True if the analog input is between the upper and lower limits.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "getInWindow"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}], "tooltip": "Return the index of the analog trigger.\n\nThis is the FPGA index of this analog trigger instance.\n\n:returns: The index of the analog trigger.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "getIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}], "tooltip": "Return the TriggerState output of the analog trigger.\n\nTrue if above upper limit.\nFalse if below lower limit.\nIf in Hysteresis, maintain previous state.\n\n:returns: True if above upper limit. False if below lower limit. If in\n Hysteresis, maintain previous state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "getTriggerState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}, {"name": "useAveragedValue", "type": "bool"}], "tooltip": "Configure the analog trigger to use the averaged vs. raw values.\n\nIf the value is true, then the averaged value is selected for the analog\ntrigger, otherwise the immediate value is used.\n\n:param useAveragedValue: If true, use the Averaged value, otherwise use the\n instantaneous reading", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "setAveraged"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}, {"name": "useFilteredValue", "type": "bool"}], "tooltip": "Configure the analog trigger to use a filtered value.\n\nThe analog trigger will operate with a 3 point average rejection filter.\nThis is designed to help with 360 degree pot applications for the period\nwhere the pot crosses through zero.\n\n:param useFilteredValue: If true, use the 3 point rejection filter,\n otherwise use the unfiltered value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "setFiltered"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}, {"name": "lower", "type": "float"}, {"name": "upper", "type": "float"}], "tooltip": "Set the upper and lower duty cycle limits of the analog trigger.\n\nThe limits are given as floating point values between 0 and 1.\n\n:param lower: The lower limit of the trigger in percentage.\n:param upper: The upper limit of the trigger in percentage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "setLimitsDutyCycle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}, {"name": "lower", "type": "int"}, {"name": "upper", "type": "int"}], "tooltip": "Set the upper and lower limits of the analog trigger.\n\nThe limits are given in ADC codes. If oversampling is used, the units must\nbe scaled appropriately.\n\n:param lower: The lower limit of the trigger in ADC codes (12-bit values).\n:param upper: The upper limit of the trigger in ADC codes (12-bit values).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "setLimitsRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}, {"name": "lower", "type": "float"}, {"name": "upper", "type": "float"}], "tooltip": "Set the upper and lower limits of the analog trigger.\n\nThe limits are given as floating point voltage values.\n\n:param lower: The lower limit of the trigger in Volts.\n:param upper: The upper limit of the trigger in Volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTrigger", "FUNC": "setLimitsVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.AnalogTriggerOutput.ts b/src/blocks/generated/class_wpilib.AnalogTriggerOutput.ts
index 72fa260f..6398f99f 100644
--- a/src/blocks/generated/class_wpilib.AnalogTriggerOutput.ts
+++ b/src/blocks/generated/class_wpilib.AnalogTriggerOutput.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.AnalogTriggerOutput", "args": [{"name": "trigger", "type": "wpilib._wpilib.AnalogTrigger"}, {"name": "outputType", "type": "wpilib._wpilib.AnalogTriggerType"}], "tooltip": "Create an object that represents one of the four outputs from an analog\ntrigger.\n\nBecause this class derives from DigitalSource, it can be passed into\nrouting functions for Counter, Encoder, etc.\n\n:param trigger: A pointer to the trigger for which this is an output.\n:param outputType: An enum that specifies the output on the trigger to\n represent.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogTriggerOutput", "type": "wpilib._wpilib.AnalogTriggerOutput"}], "tooltip": "Get the state of the analog trigger output.\n\n:returns: The state of the analog trigger output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.AnalogTriggerType", "args": [{"name": "analogTriggerOutput", "type": "wpilib._wpilib.AnalogTriggerOutput"}], "tooltip": ":returns: The type of analog trigger output to be used.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput", "FUNC": "getAnalogTriggerTypeForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogTriggerOutput", "type": "wpilib._wpilib.AnalogTriggerOutput"}], "tooltip": ":returns: The channel of the source.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogTriggerOutput", "type": "wpilib._wpilib.AnalogTriggerOutput"}], "tooltip": ":returns: The HAL Handle to the specified source.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput", "FUNC": "getPortHandleForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTriggerOutput", "type": "wpilib._wpilib.AnalogTriggerOutput"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogTriggerOutput", "type": "wpilib._wpilib.AnalogTriggerOutput"}], "tooltip": "Is source an AnalogTrigger", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput", "FUNC": "isAnalogTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.AnalogTriggerOutput", "args": [{"name": "trigger", "type": "wpilib.AnalogTrigger"}, {"name": "outputType", "type": "wpilib.AnalogTriggerType"}], "tooltip": "Create an object that represents one of the four outputs from an analog\ntrigger.\n\nBecause this class derives from DigitalSource, it can be passed into\nrouting functions for Counter, Encoder, etc.\n\n:param trigger: A pointer to the trigger for which this is an output.\n:param outputType: An enum that specifies the output on the trigger to\n represent.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogTriggerOutput", "type": "wpilib.AnalogTriggerOutput"}], "tooltip": "Get the state of the analog trigger output.\n\n:returns: The state of the analog trigger output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.AnalogTriggerType", "args": [{"name": "analogTriggerOutput", "type": "wpilib.AnalogTriggerOutput"}], "tooltip": ":returns: The type of analog trigger output to be used.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput", "FUNC": "getAnalogTriggerTypeForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogTriggerOutput", "type": "wpilib.AnalogTriggerOutput"}], "tooltip": ":returns: The channel of the source.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogTriggerOutput", "type": "wpilib.AnalogTriggerOutput"}], "tooltip": ":returns: The HAL Handle to the specified source.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput", "FUNC": "getPortHandleForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTriggerOutput", "type": "wpilib.AnalogTriggerOutput"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogTriggerOutput", "type": "wpilib.AnalogTriggerOutput"}], "tooltip": "Is source an AnalogTrigger", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.AnalogTriggerOutput", "FUNC": "isAnalogTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerOutput"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.BuiltInAccelerometer.ts b/src/blocks/generated/class_wpilib.BuiltInAccelerometer.ts
index efa362f6..c573dd40 100644
--- a/src/blocks/generated/class_wpilib.BuiltInAccelerometer.ts
+++ b/src/blocks/generated/class_wpilib.BuiltInAccelerometer.ts
@@ -13,12 +13,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.BuiltInAccelerometer", "args": [{"name": "range", "type": "wpilib._wpilib.BuiltInAccelerometer.Range"}], "tooltip": "Constructor.\n\n:param range: The range the accelerometer will measure", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.BuiltInAccelerometer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "builtInAccelerometer", "type": "wpilib._wpilib.BuiltInAccelerometer"}], "tooltip": ":returns: The acceleration of the roboRIO along the X axis in g-forces", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.BuiltInAccelerometer", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "builtInAccelerometer", "type": "wpilib._wpilib.BuiltInAccelerometer"}], "tooltip": ":returns: The acceleration of the roboRIO along the Y axis in g-forces", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.BuiltInAccelerometer", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "builtInAccelerometer", "type": "wpilib._wpilib.BuiltInAccelerometer"}], "tooltip": ":returns: The acceleration of the roboRIO along the Z axis in g-forces", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.BuiltInAccelerometer", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometer", "type": "wpilib._wpilib.BuiltInAccelerometer"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.BuiltInAccelerometer", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometer", "type": "wpilib._wpilib.BuiltInAccelerometer"}, {"name": "range", "type": "wpilib._wpilib.BuiltInAccelerometer.Range"}], "tooltip": "Set the measuring range of the accelerometer.\n\n:param range: The maximum acceleration, positive or negative, that the\n accelerometer will measure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.BuiltInAccelerometer", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.BuiltInAccelerometer", "args": [{"name": "range", "type": "wpilib.BuiltInAccelerometer.Range"}], "tooltip": "Constructor.\n\n:param range: The range the accelerometer will measure", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.BuiltInAccelerometer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "builtInAccelerometer", "type": "wpilib.BuiltInAccelerometer"}], "tooltip": ":returns: The acceleration of the roboRIO along the X axis in g-forces", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.BuiltInAccelerometer", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "builtInAccelerometer", "type": "wpilib.BuiltInAccelerometer"}], "tooltip": ":returns: The acceleration of the roboRIO along the Y axis in g-forces", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.BuiltInAccelerometer", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "builtInAccelerometer", "type": "wpilib.BuiltInAccelerometer"}], "tooltip": ":returns: The acceleration of the roboRIO along the Z axis in g-forces", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.BuiltInAccelerometer", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometer", "type": "wpilib.BuiltInAccelerometer"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.BuiltInAccelerometer", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometer", "type": "wpilib.BuiltInAccelerometer"}, {"name": "range", "type": "wpilib.BuiltInAccelerometer.Range"}], "tooltip": "Set the measuring range of the accelerometer.\n\n:param range: The maximum acceleration, positive or negative, that the\n accelerometer will measure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.BuiltInAccelerometer", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRange"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.BuiltInAccelerometer.Range", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.BuiltInAccelerometer.Range", "ENUM_VALUE": "kRange_2G"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.BuiltInAccelerometer.Range", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.BuiltInAccelerometer.Range", "ENUM_VALUE": "kRange_4G"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.BuiltInAccelerometer.Range", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.BuiltInAccelerometer.Range", "ENUM_VALUE": "kRange_8G"}},
diff --git a/src/blocks/generated/class_wpilib.CAN.ts b/src/blocks/generated/class_wpilib.CAN.ts
index fda4c037..307acacf 100644
--- a/src/blocks/generated/class_wpilib.CAN.ts
+++ b/src/blocks/generated/class_wpilib.CAN.ts
@@ -16,19 +16,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.CAN", "varType": "hal.CANDeviceType", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "VAR": "kTeamDeviceType"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.CAN", "varType": "hal.CANManufacturer", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "VAR": "kTeamManufacturer"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCAN"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.CAN", "args": [{"name": "deviceId", "type": "int"}], "tooltip": "Create a new CAN communication interface with the specific device ID.\nThis uses the team manufacturer and device types.\nThe device ID is 6 bits (0-63)\n\n:param deviceId: The device id", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCAN"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.CAN", "args": [{"name": "deviceId", "type": "int"}, {"name": "deviceManufacturer", "type": "int"}, {"name": "deviceType", "type": "int"}], "tooltip": "Create a new CAN communication interface with a specific device ID,\nmanufacturer and device type. The device ID is 6 bits, the\nmanufacturer is 8 bits, and the device type is 5 bits.\n\n:param deviceId: The device ID\n:param deviceManufacturer: The device manufacturer\n:param deviceType: The device type", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCAN"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.CAN", "args": [{"name": "deviceId", "type": "int"}], "tooltip": "Create a new CAN communication interface with the specific device ID.\nThis uses the team manufacturer and device types.\nThe device ID is 6 bits (0-63)\n\n:param deviceId: The device id", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCAN"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.CAN", "args": [{"name": "deviceId", "type": "int"}, {"name": "deviceManufacturer", "type": "int"}, {"name": "deviceType", "type": "int"}], "tooltip": "Create a new CAN communication interface with a specific device ID,\nmanufacturer and device type. The device ID is 6 bits, the\nmanufacturer is 8 bits, and the device type is 5 bits.\n\n:param deviceId: The device ID\n:param deviceManufacturer: The device manufacturer\n:param deviceType: The device type", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [], "tooltip": "Reads the current value of the millisecond-resolution timer that CANData\ntimestamps are based on\n\n:returns: Current value of timer used as a base time for CANData timestamps\n in milliseconds", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "getTimestampBaseTime"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cAN", "type": "wpilib._wpilib.CAN"}, {"name": "apiId", "type": "int"}, {"name": "data", "type": "wpilib._wpilib.CANData"}], "tooltip": "Read a CAN packet. The will continuously return the last packet received,\nwithout accounting for packet age.\n\n:param apiId: The API ID to read.\n:param data: Storage for the received data.\n\n:returns: True if the data is valid, otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "readPacketLatest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANData"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cAN", "type": "wpilib._wpilib.CAN"}, {"name": "apiId", "type": "int"}, {"name": "data", "type": "wpilib._wpilib.CANData"}], "tooltip": "Read a new CAN packet. This will only return properly once per packet\nreceived. Multiple calls without receiving another packet will return\nfalse.\n\n:param apiId: The API ID to read.\n:param data: Storage for the received data.\n\n:returns: True if the data is valid, otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "readPacketNew"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANData"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cAN", "type": "wpilib._wpilib.CAN"}, {"name": "apiId", "type": "int"}, {"name": "timeoutMs", "type": "int"}, {"name": "data", "type": "wpilib._wpilib.CANData"}], "tooltip": "Read a CAN packet. The will return the last packet received until the\npacket is older then the requested timeout. Then it will return false.\n\n:param apiId: The API ID to read.\n:param timeoutMs: The timeout time for the packet\n:param data: Storage for the received data.\n\n:returns: True if the data is valid, otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "readPacketTimeout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANData"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cAN", "type": "wpilib._wpilib.CAN"}, {"name": "apiId", "type": "int"}], "tooltip": "Stop a repeating packet with a specific ID. This ID is 10 bits.\n\n:param apiId: The API ID to stop repeating", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "stopPacketRepeating"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cAN", "type": "wpilib._wpilib.CAN"}, {"name": "data", "type": "Buffer"}, {"name": "apiId", "type": "int"}], "tooltip": "Write a packet to the CAN device with a specific ID. This ID is 10 bits.\n\n:param data: The data to write (8 bytes max)\n:param length: The data length to write\n:param apiId: The API ID to write.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "writePacket"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "cAN", "type": "wpilib._wpilib.CAN"}, {"name": "data", "type": "Buffer"}, {"name": "apiId", "type": "int"}], "tooltip": "Write a packet to the CAN device with a specific ID. This ID is 10 bits.\n\n:param data: The data to write (8 bytes max)\n:param length: The data length to write\n:param apiId: The API ID to write.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "writePacketNoError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cAN", "type": "wpilib._wpilib.CAN"}, {"name": "data", "type": "Buffer"}, {"name": "apiId", "type": "int"}, {"name": "repeatMs", "type": "int"}], "tooltip": "Write a repeating packet to the CAN device with a specific ID. This ID is\n10 bits. The RoboRIO will automatically repeat the packet at the specified\ninterval\n\n:param data: The data to write (8 bytes max)\n:param length: The data length to write\n:param apiId: The API ID to write.\n:param repeatMs: The period to repeat the packet at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "writePacketRepeating"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "cAN", "type": "wpilib._wpilib.CAN"}, {"name": "data", "type": "Buffer"}, {"name": "apiId", "type": "int"}, {"name": "repeatMs", "type": "int"}], "tooltip": "Write a repeating packet to the CAN device with a specific ID. This ID is\n10 bits. The RoboRIO will automatically repeat the packet at the specified\ninterval\n\n:param data: The data to write (8 bytes max)\n:param length: The data length to write\n:param apiId: The API ID to write.\n:param repeatMs: The period to repeat the packet at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "writePacketRepeatingNoError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cAN", "type": "wpilib._wpilib.CAN"}, {"name": "length", "type": "int"}, {"name": "apiId", "type": "int"}], "tooltip": "Write an RTR frame to the CAN device with a specific ID. This ID is 10\nbits. The length by spec must match what is returned by the responding\ndevice\n\n:param length: The length to request (0 to 8)\n:param apiId: The API ID to write.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "writeRTRFrame"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "cAN", "type": "wpilib._wpilib.CAN"}, {"name": "length", "type": "int"}, {"name": "apiId", "type": "int"}], "tooltip": "Write an RTR frame to the CAN device with a specific ID. This ID is 10\nbits. The length by spec must match what is returned by the responding\ndevice\n\n:param length: The length to request (0 to 8)\n:param apiId: The API ID to write.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "writeRTRFrameNoError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cAN", "type": "wpilib.CAN"}, {"name": "apiId", "type": "int"}, {"name": "data", "type": "wpilib.CANData"}], "tooltip": "Read a CAN packet. The will continuously return the last packet received,\nwithout accounting for packet age.\n\n:param apiId: The API ID to read.\n:param data: Storage for the received data.\n\n:returns: True if the data is valid, otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "readPacketLatest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANData"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cAN", "type": "wpilib.CAN"}, {"name": "apiId", "type": "int"}, {"name": "data", "type": "wpilib.CANData"}], "tooltip": "Read a new CAN packet. This will only return properly once per packet\nreceived. Multiple calls without receiving another packet will return\nfalse.\n\n:param apiId: The API ID to read.\n:param data: Storage for the received data.\n\n:returns: True if the data is valid, otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "readPacketNew"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANData"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cAN", "type": "wpilib.CAN"}, {"name": "apiId", "type": "int"}, {"name": "timeoutMs", "type": "int"}, {"name": "data", "type": "wpilib.CANData"}], "tooltip": "Read a CAN packet. The will return the last packet received until the\npacket is older then the requested timeout. Then it will return false.\n\n:param apiId: The API ID to read.\n:param timeoutMs: The timeout time for the packet\n:param data: Storage for the received data.\n\n:returns: True if the data is valid, otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "readPacketTimeout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANData"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cAN", "type": "wpilib.CAN"}, {"name": "apiId", "type": "int"}], "tooltip": "Stop a repeating packet with a specific ID. This ID is 10 bits.\n\n:param apiId: The API ID to stop repeating", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "stopPacketRepeating"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cAN", "type": "wpilib.CAN"}, {"name": "data", "type": "Buffer"}, {"name": "apiId", "type": "int"}], "tooltip": "Write a packet to the CAN device with a specific ID. This ID is 10 bits.\n\n:param data: The data to write (8 bytes max)\n:param length: The data length to write\n:param apiId: The API ID to write.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "writePacket"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "cAN", "type": "wpilib.CAN"}, {"name": "data", "type": "Buffer"}, {"name": "apiId", "type": "int"}], "tooltip": "Write a packet to the CAN device with a specific ID. This ID is 10 bits.\n\n:param data: The data to write (8 bytes max)\n:param length: The data length to write\n:param apiId: The API ID to write.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "writePacketNoError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cAN", "type": "wpilib.CAN"}, {"name": "data", "type": "Buffer"}, {"name": "apiId", "type": "int"}, {"name": "repeatMs", "type": "int"}], "tooltip": "Write a repeating packet to the CAN device with a specific ID. This ID is\n10 bits. The RoboRIO will automatically repeat the packet at the specified\ninterval\n\n:param data: The data to write (8 bytes max)\n:param length: The data length to write\n:param apiId: The API ID to write.\n:param repeatMs: The period to repeat the packet at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "writePacketRepeating"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "cAN", "type": "wpilib.CAN"}, {"name": "data", "type": "Buffer"}, {"name": "apiId", "type": "int"}, {"name": "repeatMs", "type": "int"}], "tooltip": "Write a repeating packet to the CAN device with a specific ID. This ID is\n10 bits. The RoboRIO will automatically repeat the packet at the specified\ninterval\n\n:param data: The data to write (8 bytes max)\n:param length: The data length to write\n:param apiId: The API ID to write.\n:param repeatMs: The period to repeat the packet at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "writePacketRepeatingNoError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cAN", "type": "wpilib.CAN"}, {"name": "length", "type": "int"}, {"name": "apiId", "type": "int"}], "tooltip": "Write an RTR frame to the CAN device with a specific ID. This ID is 10\nbits. The length by spec must match what is returned by the responding\ndevice\n\n:param length: The length to request (0 to 8)\n:param apiId: The API ID to write.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "writeRTRFrame"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "cAN", "type": "wpilib.CAN"}, {"name": "length", "type": "int"}, {"name": "apiId", "type": "int"}], "tooltip": "Write an RTR frame to the CAN device with a specific ID. This ID is 10\nbits. The length by spec must match what is returned by the responding\ndevice\n\n:param length: The length to request (0 to 8)\n:param apiId: The API ID to write.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.CAN", "FUNC": "writeRTRFrameNoError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCAN"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.CANData.ts b/src/blocks/generated/class_wpilib.CANData.ts
index 5700a92e..6fb424af 100644
--- a/src/blocks/generated/class_wpilib.CANData.ts
+++ b/src/blocks/generated/class_wpilib.CANData.ts
@@ -21,7 +21,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.CANData", "varType": "int", "importModule": "", "selfLabel": "cANData", "selfType": "wpilib.CANData"}, "fields": {"MODULE_OR_CLASS": "wpilib.CANData", "VAR": "length"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANData"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.CANData", "varType": "int", "importModule": "", "selfLabel": "cANData", "selfType": "wpilib.CANData"}, "fields": {"MODULE_OR_CLASS": "wpilib.CANData", "VAR": "timestamp"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANData"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.CANData", "varType": "int", "importModule": "", "selfLabel": "cANData", "selfType": "wpilib.CANData"}, "fields": {"MODULE_OR_CLASS": "wpilib.CANData", "VAR": "timestamp"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANData"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCANData"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.CANData", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.CANData"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCANData"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.CANData", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.CANData"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.CANStatus.ts b/src/blocks/generated/class_wpilib.CANStatus.ts
index 65eeacc9..b0fcd0d8 100644
--- a/src/blocks/generated/class_wpilib.CANStatus.ts
+++ b/src/blocks/generated/class_wpilib.CANStatus.ts
@@ -27,7 +27,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.CANStatus", "varType": "int", "importModule": "", "selfLabel": "cANStatus", "selfType": "wpilib.CANStatus"}, "fields": {"MODULE_OR_CLASS": "wpilib.CANStatus", "VAR": "txFullCount"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANStatus"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.CANStatus", "varType": "float", "importModule": "", "selfLabel": "cANStatus", "selfType": "wpilib.CANStatus"}, "fields": {"MODULE_OR_CLASS": "wpilib.CANStatus", "VAR": "percentBusUtilization"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANStatus"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.CANStatus", "varType": "float", "importModule": "", "selfLabel": "cANStatus", "selfType": "wpilib.CANStatus"}, "fields": {"MODULE_OR_CLASS": "wpilib.CANStatus", "VAR": "percentBusUtilization"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANStatus"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCANStatus"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.CANStatus", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.CANStatus"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCANStatus"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.CANStatus", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.CANStatus"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Color.ts b/src/blocks/generated/class_wpilib.Color.ts
index a4cc0ae1..cddf69bf 100644
--- a/src/blocks/generated/class_wpilib.Color.ts
+++ b/src/blocks/generated/class_wpilib.Color.ts
@@ -160,12 +160,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.Color", "varType": "float", "importModule": "", "selfLabel": "color", "selfType": "wpilib.Color"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color", "VAR": "blue"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.Color", "varType": "float", "importModule": "", "selfLabel": "color", "selfType": "wpilib.Color"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color", "VAR": "green"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.Color", "varType": "float", "importModule": "", "selfLabel": "color", "selfType": "wpilib.Color"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color", "VAR": "red"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Color", "args": [], "tooltip": "Constructs a default color (black).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Color", "args": [{"name": "red", "type": "float"}, {"name": "green", "type": "float"}, {"name": "blue", "type": "float"}], "tooltip": "Constructs a Color from doubles (0-1).\n\n:param red: Red value (0-1)\n:param green: Green value (0-1)\n:param blue: Blue value (0-1)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Color", "args": [{"name": "r", "type": "int"}, {"name": "g", "type": "int"}, {"name": "b", "type": "int"}], "tooltip": "Constructs a Color from ints (0-255).\n\n:param r: Red value (0-255)\n:param g: Green value (0-255)\n:param b: Blue value (0-255)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Color", "args": [{"name": "hexString", "type": "str"}], "tooltip": "Constructs a Color from a hex string.\n\n:param hexString: a string of the format \\#RRGGBB\n @throws std::invalid_argument if the hex string is invalid.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.Color", "args": [{"name": "h", "type": "int"}, {"name": "s", "type": "int"}, {"name": "v", "type": "int"}], "tooltip": "Creates a Color from HSV values.\n\n:param h: The h value [0-180)\n:param s: The s value [0-255]\n:param v: The v value [0-255]\n\n:returns: The color", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color", "FUNC": "fromHSV"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "color", "type": "wpilib._wpilib.Color"}], "tooltip": "Return this color represented as a hex string.\n\n:returns: a string of the format \\#RRGGBB", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Color", "FUNC": "hexString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Color", "args": [], "tooltip": "Constructs a default color (black).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Color", "args": [{"name": "red", "type": "float"}, {"name": "green", "type": "float"}, {"name": "blue", "type": "float"}], "tooltip": "Constructs a Color from doubles (0-1).\n\n:param red: Red value (0-1)\n:param green: Green value (0-1)\n:param blue: Blue value (0-1)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Color", "args": [{"name": "r", "type": "int"}, {"name": "g", "type": "int"}, {"name": "b", "type": "int"}], "tooltip": "Constructs a Color from ints (0-255).\n\n:param r: Red value (0-255)\n:param g: Green value (0-255)\n:param b: Blue value (0-255)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Color", "args": [{"name": "hexString", "type": "str"}], "tooltip": "Constructs a Color from a hex string.\n\n:param hexString: a string of the format \\#RRGGBB\n @throws std::invalid_argument if the hex string is invalid.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.Color", "args": [{"name": "h", "type": "int"}, {"name": "s", "type": "int"}, {"name": "v", "type": "int"}], "tooltip": "Creates a Color from HSV values.\n\n:param h: The h value [0-180)\n:param s: The s value [0-255]\n:param v: The v value [0-255]\n\n:returns: The color", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color", "FUNC": "fromHSV"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "color", "type": "wpilib.Color"}], "tooltip": "Return this color represented as a hex string.\n\n:returns: a string of the format \\#RRGGBB", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Color", "FUNC": "hexString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Color8Bit.ts b/src/blocks/generated/class_wpilib.Color8Bit.ts
index 951422d2..a830026a 100644
--- a/src/blocks/generated/class_wpilib.Color8Bit.ts
+++ b/src/blocks/generated/class_wpilib.Color8Bit.ts
@@ -16,13 +16,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.Color8Bit", "varType": "int", "importModule": "", "selfLabel": "color8Bit", "selfType": "wpilib.Color8Bit"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit", "VAR": "blue"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.Color8Bit", "varType": "int", "importModule": "", "selfLabel": "color8Bit", "selfType": "wpilib.Color8Bit"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit", "VAR": "green"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.Color8Bit", "varType": "int", "importModule": "", "selfLabel": "color8Bit", "selfType": "wpilib.Color8Bit"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit", "VAR": "red"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor8Bit"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Color8Bit", "args": [], "tooltip": "Constructs a default color (black).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor8Bit"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Color8Bit", "args": [{"name": "red", "type": "int"}, {"name": "green", "type": "int"}, {"name": "blue", "type": "int"}], "tooltip": "Constructs a Color8Bit.\n\n:param red: Red value (0-255)\n:param green: Green value (0-255)\n:param blue: Blue value (0-255)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor8Bit"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Color8Bit", "args": [{"name": "color", "type": "wpilib._wpilib.Color"}], "tooltip": "Constructs a Color8Bit from a Color.\n\n:param color: The color", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor8Bit"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Color8Bit", "args": [{"name": "hexString", "type": "str"}], "tooltip": "Constructs a Color8Bit from a hex string.\n\n:param hexString: a string of the format \\#RRGGBB\n @throws std::invalid_argument if the hex string is invalid.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor8Bit"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.Color8Bit", "args": [{"name": "hexString", "type": "str"}], "tooltip": "Create a Color8Bit from a hex string.\n\n:param hexString: a string of the format \\#RRGGBB\n\n:returns: Color8Bit object from hex string.\n @throws std::invalid_argument if the hex string is invalid.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit", "FUNC": "fromHexString"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "color8Bit", "type": "wpilib._wpilib.Color8Bit"}], "tooltip": "Return this color represented as a hex string.\n\n:returns: a string of the format \\#RRGGBB", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit", "FUNC": "hexString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.Color", "args": [{"name": "color8Bit", "type": "wpilib._wpilib.Color8Bit"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit", "FUNC": "toColor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor8Bit"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Color8Bit", "args": [], "tooltip": "Constructs a default color (black).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor8Bit"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Color8Bit", "args": [{"name": "red", "type": "int"}, {"name": "green", "type": "int"}, {"name": "blue", "type": "int"}], "tooltip": "Constructs a Color8Bit.\n\n:param red: Red value (0-255)\n:param green: Green value (0-255)\n:param blue: Blue value (0-255)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor8Bit"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Color8Bit", "args": [{"name": "color", "type": "wpilib.Color"}], "tooltip": "Constructs a Color8Bit from a Color.\n\n:param color: The color", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor8Bit"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Color8Bit", "args": [{"name": "hexString", "type": "str"}], "tooltip": "Constructs a Color8Bit from a hex string.\n\n:param hexString: a string of the format \\#RRGGBB\n @throws std::invalid_argument if the hex string is invalid.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor8Bit"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.Color8Bit", "args": [{"name": "hexString", "type": "str"}], "tooltip": "Create a Color8Bit from a hex string.\n\n:param hexString: a string of the format \\#RRGGBB\n\n:returns: Color8Bit object from hex string.\n @throws std::invalid_argument if the hex string is invalid.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit", "FUNC": "fromHexString"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "color8Bit", "type": "wpilib.Color8Bit"}], "tooltip": "Return this color represented as a hex string.\n\n:returns: a string of the format \\#RRGGBB", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit", "FUNC": "hexString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.Color", "args": [{"name": "color8Bit", "type": "wpilib.Color8Bit"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Color8Bit", "FUNC": "toColor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Compressor.ts b/src/blocks/generated/class_wpilib.Compressor.ts
index 45c95c0d..36716398 100644
--- a/src/blocks/generated/class_wpilib.Compressor.ts
+++ b/src/blocks/generated/class_wpilib.Compressor.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Compressor", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib._wpilib.PneumaticsModuleType"}], "tooltip": "Constructs a compressor for a specified module and type.\n\n:param module: The module ID to use.\n:param moduleType: The module type to use.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Compressor", "args": [{"name": "moduleType", "type": "wpilib._wpilib.PneumaticsModuleType"}], "tooltip": "Constructs a compressor for a default module and specified type.\n\n:param moduleType: The module type to use.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "compressor", "type": "wpilib._wpilib.Compressor"}], "tooltip": "Disable the compressor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "compressor", "type": "wpilib._wpilib.Compressor"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "If supported by the device, enables the compressor in analog mode. This\nmode uses an analog pressure sensor connected to analog channel 0 to cycle\nthe compressor. The compressor will turn on when the pressure drops below\n``minPressure`` and will turn off when the pressure reaches {@code\nmaxPressure}. This mode is only supported by the REV PH with the REV Analog\nPressure Sensor connected to analog channel 0.\n\nOn CTRE PCM, this will enable digital control.\n\n:param minPressure: The minimum pressure. The compressor will turn on when\n the pressure drops below this value.\n:param maxPressure: The maximum pressure. The compressor will turn off when\n the pressure reaches this value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "enableAnalog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "compressor", "type": "wpilib._wpilib.Compressor"}], "tooltip": "Enables the compressor in digital mode using the digital pressure switch.\nThe compressor will turn on when the pressure switch indicates that the\nsystem is not full, and will turn off when the pressure switch indicates\nthat the system is full.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "enableDigital"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "compressor", "type": "wpilib._wpilib.Compressor"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "If supported by the device, enables the compressor in hybrid mode. This\nmode uses both a digital pressure switch and an analog pressure sensor\nconnected to analog channel 0 to cycle the compressor. This mode is only\nsupported by the REV PH with the REV Analog Pressure Sensor connected to\nanalog channel 0.\n\nThe compressor will turn on when \\a both:\n\n- The digital pressure switch indicates the system is not full AND\n- The analog pressure sensor indicates that the pressure in the system\nis below the specified minimum pressure.\n\nThe compressor will turn off when \\a either:\n\n- The digital pressure switch is disconnected or indicates that the system\nis full OR\n- The pressure detected by the analog sensor is greater than the specified\nmaximum pressure.\n\nOn CTRE PCM, this will enable digital control.\n\n:param minPressure: The minimum pressure. The compressor will turn on\n when the pressure drops below this value and the pressure switch indicates\n that the system is not full.\n:param maxPressure: The maximum pressure. The compressor will turn\n off when the pressure reaches this value or the pressure switch is\n disconnected or indicates that the system is full.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "enableHybrid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "compressor", "type": "wpilib._wpilib.Compressor"}], "tooltip": "If supported by the device, returns the analog input voltage (on channel\n0).\n\nThis function is only supported by the REV PH. On CTRE PCM, this will\nreturn 0.\n\n:returns: The analog input voltage, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "getAnalogVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressorConfigType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.CompressorConfigType", "args": [{"name": "compressor", "type": "wpilib._wpilib.Compressor"}], "tooltip": "Returns the active compressor configuration.\n\n:returns: The active compressor configuration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "getConfigType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "compressor", "type": "wpilib._wpilib.Compressor"}], "tooltip": "Get the current drawn by the compressor.\n\n:returns: Current drawn by the compressor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "getCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.pounds_per_square_inch", "args": [{"name": "compressor", "type": "wpilib._wpilib.Compressor"}], "tooltip": "If supported by the device, returns the pressure read by the analog\npressure sensor (on channel 0).\n\nThis function is only supported by the REV PH with the REV Analog Pressure\nSensor. On CTRE PCM, this will return 0.\n\n:returns: The pressure read by the analog pressure sensor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "getPressure"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "compressor", "type": "wpilib._wpilib.Compressor"}], "tooltip": "Returns the state of the pressure switch.\n\n:returns: True if pressure switch indicates that the system is not full,\n otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "getPressureSwitchValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "compressor", "type": "wpilib._wpilib.Compressor"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "compressor", "type": "wpilib._wpilib.Compressor"}], "tooltip": "Returns whether the compressor is active or not.\n\n:returns: true if the compressor is on - otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Compressor", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib.PneumaticsModuleType"}], "tooltip": "Constructs a compressor for a specified module and type.\n\n:param module: The module ID to use.\n:param moduleType: The module type to use.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Compressor", "args": [{"name": "moduleType", "type": "wpilib.PneumaticsModuleType"}], "tooltip": "Constructs a compressor for a default module and specified type.\n\n:param moduleType: The module type to use.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "compressor", "type": "wpilib.Compressor"}], "tooltip": "Disable the compressor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "compressor", "type": "wpilib.Compressor"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "If supported by the device, enables the compressor in analog mode. This\nmode uses an analog pressure sensor connected to analog channel 0 to cycle\nthe compressor. The compressor will turn on when the pressure drops below\n``minPressure`` and will turn off when the pressure reaches {@code\nmaxPressure}. This mode is only supported by the REV PH with the REV Analog\nPressure Sensor connected to analog channel 0.\n\nOn CTRE PCM, this will enable digital control.\n\n:param minPressure: The minimum pressure. The compressor will turn on when\n the pressure drops below this value.\n:param maxPressure: The maximum pressure. The compressor will turn off when\n the pressure reaches this value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "enableAnalog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "compressor", "type": "wpilib.Compressor"}], "tooltip": "Enables the compressor in digital mode using the digital pressure switch.\nThe compressor will turn on when the pressure switch indicates that the\nsystem is not full, and will turn off when the pressure switch indicates\nthat the system is full.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "enableDigital"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "compressor", "type": "wpilib.Compressor"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "If supported by the device, enables the compressor in hybrid mode. This\nmode uses both a digital pressure switch and an analog pressure sensor\nconnected to analog channel 0 to cycle the compressor. This mode is only\nsupported by the REV PH with the REV Analog Pressure Sensor connected to\nanalog channel 0.\n\nThe compressor will turn on when \\a both:\n\n- The digital pressure switch indicates the system is not full AND\n- The analog pressure sensor indicates that the pressure in the system\nis below the specified minimum pressure.\n\nThe compressor will turn off when \\a either:\n\n- The digital pressure switch is disconnected or indicates that the system\nis full OR\n- The pressure detected by the analog sensor is greater than the specified\nmaximum pressure.\n\nOn CTRE PCM, this will enable digital control.\n\n:param minPressure: The minimum pressure. The compressor will turn on\n when the pressure drops below this value and the pressure switch indicates\n that the system is not full.\n:param maxPressure: The maximum pressure. The compressor will turn\n off when the pressure reaches this value or the pressure switch is\n disconnected or indicates that the system is full.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "enableHybrid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "compressor", "type": "wpilib.Compressor"}], "tooltip": "If supported by the device, returns the analog input voltage (on channel\n0).\n\nThis function is only supported by the REV PH. On CTRE PCM, this will\nreturn 0.\n\n:returns: The analog input voltage, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "getAnalogVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressorConfigType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.CompressorConfigType", "args": [{"name": "compressor", "type": "wpilib.Compressor"}], "tooltip": "Returns the active compressor configuration.\n\n:returns: The active compressor configuration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "getConfigType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "compressor", "type": "wpilib.Compressor"}], "tooltip": "Get the current drawn by the compressor.\n\n:returns: Current drawn by the compressor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "getCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.pounds_per_square_inch", "args": [{"name": "compressor", "type": "wpilib.Compressor"}], "tooltip": "If supported by the device, returns the pressure read by the analog\npressure sensor (on channel 0).\n\nThis function is only supported by the REV PH with the REV Analog Pressure\nSensor. On CTRE PCM, this will return 0.\n\n:returns: The pressure read by the analog pressure sensor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "getPressure"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "compressor", "type": "wpilib.Compressor"}], "tooltip": "Returns the state of the pressure switch.\n\n:returns: True if pressure switch indicates that the system is not full,\n otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "getPressureSwitchValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "compressor", "type": "wpilib.Compressor"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "compressor", "type": "wpilib.Compressor"}], "tooltip": "Returns whether the compressor is active or not.\n\n:returns: true if the compressor is on - otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Compressor", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCompressor"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Counter.ts b/src/blocks/generated/class_wpilib.Counter.ts
index 9912849a..c37b2d88 100644
--- a/src/blocks/generated/class_wpilib.Counter.ts
+++ b/src/blocks/generated/class_wpilib.Counter.ts
@@ -13,40 +13,40 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 38 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Counter", "args": [{"name": "mode", "type": "wpilib._wpilib.Counter.Mode"}], "tooltip": "Create an instance of a counter where no sources are selected.\n\nThey all must be selected by calling functions to specify the up source and\nthe down source independently.\n\nThis creates a ChipObject counter and initializes status variables\nappropriately.\n\nThe counter will start counting immediately.\n\n:param mode: The counter mode", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMode"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Counter", "args": [{"name": "channel", "type": "int"}], "tooltip": "Create an instance of a Counter object.\n\nCreate an up-Counter instance given a channel.\n\nThe counter will start counting immediately.\n\n:param channel: The DIO channel to use as the up source. 0-9 are on-board,\n 10-25 are on the MXP", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Counter", "args": [{"name": "source", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Create an instance of a counter from a Digital Source (such as a Digital\nInput).\n\nThis is used if an existing digital input is to be shared by multiple other\nobjects such as encoders or if the Digital Source is not a Digital Input\nchannel (such as an Analog %Trigger).\n\nThe counter will start counting immediately.\n\n:param source: A pointer to the existing DigitalSource object. It will be\n set as the Up Source.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Counter", "args": [{"name": "trigger", "type": "wpilib._wpilib.AnalogTrigger"}], "tooltip": "Create an instance of a Counter object.\n\nCreate an instance of a simple up-Counter given an analog trigger.\nUse the trigger state output from the analog trigger.\n\nThe counter will start counting immediately.\n\n:param trigger: The reference to the existing AnalogTrigger object.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Counter", "args": [{"name": "encodingType", "type": "wpilib.interfaces._interfaces.CounterBase.EncodingType"}, {"name": "upSource", "type": "wpilib._wpilib.DigitalSource"}, {"name": "downSource", "type": "wpilib._wpilib.DigitalSource"}, {"name": "inverted", "type": "bool"}], "tooltip": "Create an instance of a Counter object.\n\nCreates a full up-down counter given two Digital Sources.\n\n:param encodingType: The quadrature decoding mode (1x or 2x)\n:param upSource: The pointer to the DigitalSource to set as the up\n source\n:param downSource: The pointer to the DigitalSource to set as the down\n source\n:param inverted: True to invert the output (reverse the direction)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncodingType"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "Disable the down counting source to the counter.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "clearDownSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "Disable the up counting source to the counter.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "clearUpSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "Read the current counter value.\n\nRead the value at this instant. It may still be running, so it reflects the\ncurrent value. Next time it is read, it might have a different value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "The last direction the counter value changed.\n\n:returns: The last direction the counter value changed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "Read the current scaled counter value. Read the value at this instant,\nscaled by the distance per pulse (defaults to 1).\n\n:returns: The distance since the last reset", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getDistance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getFPGAIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "Get the Period of the most recent count.\n\nReturns the time interval of the most recent count. This can be used for\nvelocity calculations to determine shaft speed.\n\n:returns: The period between the last two pulses in units of seconds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "Get the current rate of the Counter. Read the current rate of the counter\naccounting for the distance per pulse value. The default value for distance\nper pulse (1) yields units of pulses per second.\n\n:returns: The rate in units/sec", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "Get the Samples to Average which specifies the number of samples of the\ntimer to average when calculating the period.\n\nPerform averaging to account for mechanical imperfections or as\noversampling to increase resolution.\n\n:returns: The number of samples being averaged (from 1 to 127)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "Determine if the clock is stopped.\n\nDetermine if the clocked input is stopped based on the MaxPeriod value set\nusing the SetMaxPeriod method. If the clock exceeds the MaxPeriod, then the\ndevice (and counter) are assumed to be stopped and it returns true.\n\n:returns: Returns true if the most recent counter period exceeds the\n MaxPeriod value set by SetMaxPeriod.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getStopped"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "Reset the Counter to zero.\n\nSet the counter value to zero. This doesn't effect the running state of the\ncounter, just sets the current value to zero.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "distancePerPulse", "type": "float"}], "tooltip": "Set the distance per pulse for this counter. This sets the multiplier used\nto determine the distance driven based on the count value from the encoder.\nSet this value based on the Pulses per Revolution and factor in any gearing\nreductions. This distance can be in any units you like, linear or angular.\n\n:param distancePerPulse: The scale factor that will be used to convert\n pulses to useful units.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setDistancePerPulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "channel", "type": "int"}], "tooltip": "Set the down counting source to be a digital input channel.\n\n:param channel: The DIO channel to use as the up source. 0-9 are on-board,\n 10-25 are on the MXP", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setDownSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}, {"name": "triggerType", "type": "wpilib._wpilib.AnalogTriggerType"}], "tooltip": "Set the down counting source to be an analog trigger.\n\n:param analogTrigger: The analog trigger object that is used for the Down\n Source\n:param triggerType: The analog trigger output that will trigger the\n counter.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setDownSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "source", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setDownSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "risingEdge", "type": "bool"}, {"name": "fallingEdge", "type": "bool"}], "tooltip": "Set the edge sensitivity on a down counting source.\n\nSet the down source to either detect rising edges or falling edges.\n\n:param risingEdge: True to trigger on rising edges\n:param fallingEdge: True to trigger on falling edges", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setDownSourceEdge"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "Set external direction mode on this counter.\n\nCounts are sourced on the Up counter input.\nThe Down counter input represents the direction to count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setExternalDirectionMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "maxPeriod", "type": "wpimath.units.seconds"}], "tooltip": "Set the maximum period where the device is still considered \"moving\".\n\nSets the maximum period where the device is considered moving. This value\nis used to determine the \"stopped\" state of the counter using the\nGetStopped method.\n\n:param maxPeriod: The maximum period where the counted device is considered\n moving in seconds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setMaxPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "threshold", "type": "float"}], "tooltip": "Configure the counter to count in up or down based on the length of the\ninput pulse.\n\nThis mode is most useful for direction sensitive gear tooth sensors.\n\n:param threshold: The pulse length beyond which the counter counts the\n opposite direction. Units are seconds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setPulseLengthMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "reverseDirection", "type": "bool"}], "tooltip": "Set the Counter to return reversed sensing on the direction.\n\nThis allows counters to change the direction they are counting in the case\nof 1X and 2X quadrature encoding only. Any other counter mode isn't\nsupported.\n\n:param reverseDirection: true if the value counted should be negated.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setReverseDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "samplesToAverage", "type": "int"}], "tooltip": "Set the Samples to Average which specifies the number of samples of the\ntimer to average when calculating the period. Perform averaging to account\nfor mechanical imperfections or as oversampling to increase resolution.\n\n:param samplesToAverage: The number of samples to average from 1 to 127.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "highSemiPeriod", "type": "bool"}], "tooltip": "Set Semi-period mode on this counter.\n\nCounts up on both rising and falling edges.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setSemiPeriodMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}], "tooltip": "Set standard up / down counting mode on this counter.\n\nUp and down counts are sourced independently from two inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setUpDownCounterMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "channel", "type": "int"}], "tooltip": "Set the up source for the counter as a digital input channel.\n\n:param channel: The DIO channel to use as the up source. 0-9 are on-board,\n 10-25 are on the MXP", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setUpSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}, {"name": "triggerType", "type": "wpilib._wpilib.AnalogTriggerType"}], "tooltip": "Set the up counting source to be an analog trigger.\n\n:param analogTrigger: The analog trigger object that is used for the Up\n Source\n:param triggerType: The analog trigger output that will trigger the\n counter.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setUpSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "source", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Set the source object that causes the counter to count up.\n\nSet the up counting DigitalSource.\n\n:param source: Pointer to the DigitalSource object to set as the up source", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setUpSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "risingEdge", "type": "bool"}, {"name": "fallingEdge", "type": "bool"}], "tooltip": "Set the edge sensitivity on an up counting source.\n\nSet the up source to either detect rising edges or falling edges or both.\n\n:param risingEdge: True to trigger on rising edges\n:param fallingEdge: True to trigger on falling edges", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setUpSourceEdge"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib._wpilib.Counter"}, {"name": "enabled", "type": "bool"}], "tooltip": "Select whether you want to continue updating the event timer output when\nthere are no samples captured.\n\nThe output of the event timer has a buffer of periods that are averaged and\nposted to a register on the FPGA. When the timer detects that the event\nsource has stopped (based on the MaxPeriod) the buffer of samples to be\naveraged is emptied. If you enable the update when empty, you will be\nnotified of the stopped source and the event time will report 0 samples.\nIf you disable update when empty, the most recent average will remain on\nthe output until a new sample is acquired. You will never see 0 samples\noutput (except when there have been no events since an FPGA reset) and you\nwill likely not see the stopped bit become true (since it is updated at the\nend of an average and there are no samples to average).\n\n:param enabled: True to enable update when empty", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setUpdateWhenEmpty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Counter", "args": [{"name": "mode", "type": "wpilib.Counter.Mode"}], "tooltip": "Create an instance of a counter where no sources are selected.\n\nThey all must be selected by calling functions to specify the up source and\nthe down source independently.\n\nThis creates a ChipObject counter and initializes status variables\nappropriately.\n\nThe counter will start counting immediately.\n\n:param mode: The counter mode", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMode"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Counter", "args": [{"name": "channel", "type": "int"}], "tooltip": "Create an instance of a Counter object.\n\nCreate an up-Counter instance given a channel.\n\nThe counter will start counting immediately.\n\n:param channel: The DIO channel to use as the up source. 0-9 are on-board,\n 10-25 are on the MXP", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Counter", "args": [{"name": "source", "type": "wpilib.DigitalSource"}], "tooltip": "Create an instance of a counter from a Digital Source (such as a Digital\nInput).\n\nThis is used if an existing digital input is to be shared by multiple other\nobjects such as encoders or if the Digital Source is not a Digital Input\nchannel (such as an Analog %Trigger).\n\nThe counter will start counting immediately.\n\n:param source: A pointer to the existing DigitalSource object. It will be\n set as the Up Source.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Counter", "args": [{"name": "trigger", "type": "wpilib.AnalogTrigger"}], "tooltip": "Create an instance of a Counter object.\n\nCreate an instance of a simple up-Counter given an analog trigger.\nUse the trigger state output from the analog trigger.\n\nThe counter will start counting immediately.\n\n:param trigger: The reference to the existing AnalogTrigger object.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Counter", "args": [{"name": "encodingType", "type": "wpilib.interfaces.CounterBase.EncodingType"}, {"name": "upSource", "type": "wpilib.DigitalSource"}, {"name": "downSource", "type": "wpilib.DigitalSource"}, {"name": "inverted", "type": "bool"}], "tooltip": "Create an instance of a Counter object.\n\nCreates a full up-down counter given two Digital Sources.\n\n:param encodingType: The quadrature decoding mode (1x or 2x)\n:param upSource: The pointer to the DigitalSource to set as the up\n source\n:param downSource: The pointer to the DigitalSource to set as the down\n source\n:param inverted: True to invert the output (reverse the direction)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncodingType"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "Disable the down counting source to the counter.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "clearDownSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "Disable the up counting source to the counter.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "clearUpSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "Read the current counter value.\n\nRead the value at this instant. It may still be running, so it reflects the\ncurrent value. Next time it is read, it might have a different value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "The last direction the counter value changed.\n\n:returns: The last direction the counter value changed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "Read the current scaled counter value. Read the value at this instant,\nscaled by the distance per pulse (defaults to 1).\n\n:returns: The distance since the last reset", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getDistance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getFPGAIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "Get the Period of the most recent count.\n\nReturns the time interval of the most recent count. This can be used for\nvelocity calculations to determine shaft speed.\n\n:returns: The period between the last two pulses in units of seconds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "Get the current rate of the Counter. Read the current rate of the counter\naccounting for the distance per pulse value. The default value for distance\nper pulse (1) yields units of pulses per second.\n\n:returns: The rate in units/sec", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "Get the Samples to Average which specifies the number of samples of the\ntimer to average when calculating the period.\n\nPerform averaging to account for mechanical imperfections or as\noversampling to increase resolution.\n\n:returns: The number of samples being averaged (from 1 to 127)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "Determine if the clock is stopped.\n\nDetermine if the clocked input is stopped based on the MaxPeriod value set\nusing the SetMaxPeriod method. If the clock exceeds the MaxPeriod, then the\ndevice (and counter) are assumed to be stopped and it returns true.\n\n:returns: Returns true if the most recent counter period exceeds the\n MaxPeriod value set by SetMaxPeriod.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "getStopped"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "Reset the Counter to zero.\n\nSet the counter value to zero. This doesn't effect the running state of the\ncounter, just sets the current value to zero.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "distancePerPulse", "type": "float"}], "tooltip": "Set the distance per pulse for this counter. This sets the multiplier used\nto determine the distance driven based on the count value from the encoder.\nSet this value based on the Pulses per Revolution and factor in any gearing\nreductions. This distance can be in any units you like, linear or angular.\n\n:param distancePerPulse: The scale factor that will be used to convert\n pulses to useful units.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setDistancePerPulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "channel", "type": "int"}], "tooltip": "Set the down counting source to be a digital input channel.\n\n:param channel: The DIO channel to use as the up source. 0-9 are on-board,\n 10-25 are on the MXP", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setDownSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}, {"name": "triggerType", "type": "wpilib.AnalogTriggerType"}], "tooltip": "Set the down counting source to be an analog trigger.\n\n:param analogTrigger: The analog trigger object that is used for the Down\n Source\n:param triggerType: The analog trigger output that will trigger the\n counter.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setDownSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "source", "type": "wpilib.DigitalSource"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setDownSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "risingEdge", "type": "bool"}, {"name": "fallingEdge", "type": "bool"}], "tooltip": "Set the edge sensitivity on a down counting source.\n\nSet the down source to either detect rising edges or falling edges.\n\n:param risingEdge: True to trigger on rising edges\n:param fallingEdge: True to trigger on falling edges", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setDownSourceEdge"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "Set external direction mode on this counter.\n\nCounts are sourced on the Up counter input.\nThe Down counter input represents the direction to count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setExternalDirectionMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "maxPeriod", "type": "wpimath.units.seconds"}], "tooltip": "Set the maximum period where the device is still considered \"moving\".\n\nSets the maximum period where the device is considered moving. This value\nis used to determine the \"stopped\" state of the counter using the\nGetStopped method.\n\n:param maxPeriod: The maximum period where the counted device is considered\n moving in seconds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setMaxPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "threshold", "type": "float"}], "tooltip": "Configure the counter to count in up or down based on the length of the\ninput pulse.\n\nThis mode is most useful for direction sensitive gear tooth sensors.\n\n:param threshold: The pulse length beyond which the counter counts the\n opposite direction. Units are seconds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setPulseLengthMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "reverseDirection", "type": "bool"}], "tooltip": "Set the Counter to return reversed sensing on the direction.\n\nThis allows counters to change the direction they are counting in the case\nof 1X and 2X quadrature encoding only. Any other counter mode isn't\nsupported.\n\n:param reverseDirection: true if the value counted should be negated.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setReverseDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "samplesToAverage", "type": "int"}], "tooltip": "Set the Samples to Average which specifies the number of samples of the\ntimer to average when calculating the period. Perform averaging to account\nfor mechanical imperfections or as oversampling to increase resolution.\n\n:param samplesToAverage: The number of samples to average from 1 to 127.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "highSemiPeriod", "type": "bool"}], "tooltip": "Set Semi-period mode on this counter.\n\nCounts up on both rising and falling edges.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setSemiPeriodMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}], "tooltip": "Set standard up / down counting mode on this counter.\n\nUp and down counts are sourced independently from two inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setUpDownCounterMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "channel", "type": "int"}], "tooltip": "Set the up source for the counter as a digital input channel.\n\n:param channel: The DIO channel to use as the up source. 0-9 are on-board,\n 10-25 are on the MXP", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setUpSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}, {"name": "triggerType", "type": "wpilib.AnalogTriggerType"}], "tooltip": "Set the up counting source to be an analog trigger.\n\n:param analogTrigger: The analog trigger object that is used for the Up\n Source\n:param triggerType: The analog trigger output that will trigger the\n counter.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setUpSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "source", "type": "wpilib.DigitalSource"}], "tooltip": "Set the source object that causes the counter to count up.\n\nSet the up counting DigitalSource.\n\n:param source: Pointer to the DigitalSource object to set as the up source", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setUpSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "risingEdge", "type": "bool"}, {"name": "fallingEdge", "type": "bool"}], "tooltip": "Set the edge sensitivity on an up counting source.\n\nSet the up source to either detect rising edges or falling edges or both.\n\n:param risingEdge: True to trigger on rising edges\n:param fallingEdge: True to trigger on falling edges", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setUpSourceEdge"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counter", "type": "wpilib.Counter"}, {"name": "enabled", "type": "bool"}], "tooltip": "Select whether you want to continue updating the event timer output when\nthere are no samples captured.\n\nThe output of the event timer has a buffer of periods that are averaged and\nposted to a register on the FPGA. When the timer detects that the event\nsource has stopped (based on the MaxPeriod) the buffer of samples to be\naveraged is emptied. If you enable the update when empty, you will be\nnotified of the stopped source and the event time will report 0 samples.\nIf you disable update when empty, the most recent average will remain on\nthe output until a new sample is acquired. You will never see 0 samples\noutput (except when there have been no events since an FPGA reset) and you\nwill likely not see the stopped bit become true (since it is updated at the\nend of an average and there are no samples to average).\n\n:param enabled: True to enable update when empty", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Counter", "FUNC": "setUpdateWhenEmpty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Counter.Mode", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Counter.Mode", "ENUM_VALUE": "kExternalDirection"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Counter.Mode", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Counter.Mode", "ENUM_VALUE": "kPulseLength"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Counter.Mode", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Counter.Mode", "ENUM_VALUE": "kSemiperiod"}},
diff --git a/src/blocks/generated/class_wpilib.DMC60.ts b/src/blocks/generated/class_wpilib.DMC60.ts
index d4d37ae4..b690a88d 100644
--- a/src/blocks/generated/class_wpilib.DMC60.ts
+++ b/src/blocks/generated/class_wpilib.DMC60.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDMC60"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DMC60", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a DMC 60 connected via PWM.\n\n:param channel: The PWM channel that the DMC 60 is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DMC60"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDMC60"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DMC60", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a DMC 60 connected via PWM.\n\n:param channel: The PWM channel that the DMC 60 is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DMC60"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DMC60", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.DSControlWord.ts b/src/blocks/generated/class_wpilib.DSControlWord.ts
index ed49cac8..407a4a23 100644
--- a/src/blocks/generated/class_wpilib.DSControlWord.ts
+++ b/src/blocks/generated/class_wpilib.DSControlWord.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDSControlWord"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DSControlWord", "args": [], "tooltip": "DSControlWord constructor.\n\nUpon construction, the current Driver Station control word is read and\nstored internally.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib._wpilib.DSControlWord"}], "tooltip": "Check if the DS is commanding autonomous mode.\n\n:returns: True if the robot is being commanded to be in autonomous mode", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isAutonomous"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib._wpilib.DSControlWord"}], "tooltip": "Check if the DS is commanding autonomous mode and if it has enabled the\nrobot.\n\n:returns: True if the robot is being commanded to be in autonomous mode and\n enabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isAutonomousEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib._wpilib.DSControlWord"}], "tooltip": "Check if the DS is attached.\n\n:returns: True if the DS is connected to the robot", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isDSAttached"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib._wpilib.DSControlWord"}], "tooltip": "Check if the robot is disabled.\n\n:returns: True if the robot is explicitly disabled or the DS is not connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib._wpilib.DSControlWord"}], "tooltip": "Check if the robot is e-stopped.\n\n:returns: True if the robot is e-stopped", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isEStopped"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib._wpilib.DSControlWord"}], "tooltip": "Check if the DS has enabled the robot.\n\n:returns: True if the robot is enabled and the DS is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib._wpilib.DSControlWord"}], "tooltip": "Is the driver station attached to a Field Management System?\n\n:returns: True if the robot is competing on a field being controlled by a\n Field Management System", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isFMSAttached"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib._wpilib.DSControlWord"}], "tooltip": "Check if the DS is commanding teleop mode.\n\n:returns: True if the robot is being commanded to be in teleop mode", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isTeleop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib._wpilib.DSControlWord"}], "tooltip": "Check if the DS is commanding teleop mode and if it has enabled the robot.\n\n:returns: True if the robot is being commanded to be in teleop mode and\n enabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isTeleopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib._wpilib.DSControlWord"}], "tooltip": "Check if the DS is commanding test mode.\n\n:returns: True if the robot is being commanded to be in test mode", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDSControlWord"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DSControlWord", "args": [], "tooltip": "DSControlWord constructor.\n\nUpon construction, the current Driver Station control word is read and\nstored internally.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib.DSControlWord"}], "tooltip": "Check if the DS is commanding autonomous mode.\n\n:returns: True if the robot is being commanded to be in autonomous mode", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isAutonomous"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib.DSControlWord"}], "tooltip": "Check if the DS is commanding autonomous mode and if it has enabled the\nrobot.\n\n:returns: True if the robot is being commanded to be in autonomous mode and\n enabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isAutonomousEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib.DSControlWord"}], "tooltip": "Check if the DS is attached.\n\n:returns: True if the DS is connected to the robot", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isDSAttached"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib.DSControlWord"}], "tooltip": "Check if the robot is disabled.\n\n:returns: True if the robot is explicitly disabled or the DS is not connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib.DSControlWord"}], "tooltip": "Check if the robot is e-stopped.\n\n:returns: True if the robot is e-stopped", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isEStopped"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib.DSControlWord"}], "tooltip": "Check if the DS has enabled the robot.\n\n:returns: True if the robot is enabled and the DS is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib.DSControlWord"}], "tooltip": "Is the driver station attached to a Field Management System?\n\n:returns: True if the robot is competing on a field being controlled by a\n Field Management System", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isFMSAttached"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib.DSControlWord"}], "tooltip": "Check if the DS is commanding teleop mode.\n\n:returns: True if the robot is being commanded to be in teleop mode", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isTeleop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib.DSControlWord"}], "tooltip": "Check if the DS is commanding teleop mode and if it has enabled the robot.\n\n:returns: True if the robot is being commanded to be in teleop mode and\n enabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isTeleopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dSControlWord", "type": "wpilib.DSControlWord"}], "tooltip": "Check if the DS is commanding test mode.\n\n:returns: True if the robot is being commanded to be in test mode", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DSControlWord", "FUNC": "isTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDSControlWord"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.DataLogManager.ts b/src/blocks/generated/class_wpilib.DataLogManager.ts
index e9fedc62..58a8c619 100644
--- a/src/blocks/generated/class_wpilib.DataLogManager.ts
+++ b/src/blocks/generated/class_wpilib.DataLogManager.ts
@@ -11,7 +11,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDataLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpiutil._wpiutil.log.DataLog", "args": [], "tooltip": "Get the managed data log (for custom logging). Starts the data log manager\nif not already started.\n\n:returns: data log", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DataLogManager", "FUNC": "getLog"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDataLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpiutil.log.DataLog", "args": [], "tooltip": "Get the managed data log (for custom logging). Starts the data log manager\nif not already started.\n\n:returns: data log", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DataLogManager", "FUNC": "getLog"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "str", "args": [], "tooltip": "Get the log directory.\n\n:returns: log directory", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DataLogManager", "FUNC": "getLogDir"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "message", "type": "str"}], "tooltip": "Log a message to the \"messages\" entry. The message is also printed to\nstandard output (followed by a newline).\n\n:param message: message", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DataLogManager", "FUNC": "log"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "enabled", "type": "bool"}], "tooltip": "Enable or disable logging of the console output. Defaults to enabled.\n\n:param enabled: true to enable, false to disable", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DataLogManager", "FUNC": "logConsoleOutput"}},
diff --git a/src/blocks/generated/class_wpilib.DigitalGlitchFilter.ts b/src/blocks/generated/class_wpilib.DigitalGlitchFilter.ts
index 4bf61534..c7ca4a40 100644
--- a/src/blocks/generated/class_wpilib.DigitalGlitchFilter.ts
+++ b/src/blocks/generated/class_wpilib.DigitalGlitchFilter.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DigitalGlitchFilter", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib._wpilib.DigitalGlitchFilter"}, {"name": "input", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Assigns the DigitalSource to this glitch filter.\n\n:param input: The DigitalSource to add.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib._wpilib.DigitalGlitchFilter"}, {"name": "input", "type": "wpilib._wpilib.Encoder"}], "tooltip": "Assigns the Encoder to this glitch filter.\n\n:param input: The Encoder to add.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib._wpilib.DigitalGlitchFilter"}, {"name": "input", "type": "wpilib._wpilib.Counter"}], "tooltip": "Assigns the Counter to this glitch filter.\n\n:param input: The Counter to add.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalGlitchFilter", "type": "wpilib._wpilib.DigitalGlitchFilter"}], "tooltip": "Gets the number of cycles that the input must not change state for.\n\n:returns: The number of cycles.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "getPeriodCycles"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalGlitchFilter", "type": "wpilib._wpilib.DigitalGlitchFilter"}], "tooltip": "Gets the number of nanoseconds that the input must not change state for.\n\n:returns: The number of nanoseconds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "getPeriodNanoSeconds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib._wpilib.DigitalGlitchFilter"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib._wpilib.DigitalGlitchFilter"}, {"name": "input", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Removes a digital input from this filter.\n\nRemoves the DigitalSource from this glitch filter and re-assigns it to\nthe default filter.\n\n:param input: The DigitalSource to remove.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "remove"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib._wpilib.DigitalGlitchFilter"}, {"name": "input", "type": "wpilib._wpilib.Encoder"}], "tooltip": "Removes an encoder from this filter.\n\nRemoves the Encoder from this glitch filter and re-assigns it to\nthe default filter.\n\n:param input: The Encoder to remove.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "remove"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib._wpilib.DigitalGlitchFilter"}, {"name": "input", "type": "wpilib._wpilib.Counter"}], "tooltip": "Removes a counter from this filter.\n\nRemoves the Counter from this glitch filter and re-assigns it to\nthe default filter.\n\n:param input: The Counter to remove.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "remove"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib._wpilib.DigitalGlitchFilter"}, {"name": "fpgaCycles", "type": "int"}], "tooltip": "Sets the number of cycles that the input must not change state for.\n\n:param fpgaCycles: The number of FPGA cycles.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "setPeriodCycles"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib._wpilib.DigitalGlitchFilter"}, {"name": "nanoseconds", "type": "int"}], "tooltip": "Sets the number of nanoseconds that the input must not change state for.\n\n:param nanoseconds: The number of nanoseconds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "setPeriodNanoSeconds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DigitalGlitchFilter", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib.DigitalGlitchFilter"}, {"name": "input", "type": "wpilib.DigitalSource"}], "tooltip": "Assigns the DigitalSource to this glitch filter.\n\n:param input: The DigitalSource to add.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib.DigitalGlitchFilter"}, {"name": "input", "type": "wpilib.Encoder"}], "tooltip": "Assigns the Encoder to this glitch filter.\n\n:param input: The Encoder to add.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib.DigitalGlitchFilter"}, {"name": "input", "type": "wpilib.Counter"}], "tooltip": "Assigns the Counter to this glitch filter.\n\n:param input: The Counter to add.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalGlitchFilter", "type": "wpilib.DigitalGlitchFilter"}], "tooltip": "Gets the number of cycles that the input must not change state for.\n\n:returns: The number of cycles.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "getPeriodCycles"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalGlitchFilter", "type": "wpilib.DigitalGlitchFilter"}], "tooltip": "Gets the number of nanoseconds that the input must not change state for.\n\n:returns: The number of nanoseconds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "getPeriodNanoSeconds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib.DigitalGlitchFilter"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib.DigitalGlitchFilter"}, {"name": "input", "type": "wpilib.DigitalSource"}], "tooltip": "Removes a digital input from this filter.\n\nRemoves the DigitalSource from this glitch filter and re-assigns it to\nthe default filter.\n\n:param input: The DigitalSource to remove.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "remove"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib.DigitalGlitchFilter"}, {"name": "input", "type": "wpilib.Encoder"}], "tooltip": "Removes an encoder from this filter.\n\nRemoves the Encoder from this glitch filter and re-assigns it to\nthe default filter.\n\n:param input: The Encoder to remove.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "remove"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib.DigitalGlitchFilter"}, {"name": "input", "type": "wpilib.Counter"}], "tooltip": "Removes a counter from this filter.\n\nRemoves the Counter from this glitch filter and re-assigns it to\nthe default filter.\n\n:param input: The Counter to remove.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "remove"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib.DigitalGlitchFilter"}, {"name": "fpgaCycles", "type": "int"}], "tooltip": "Sets the number of cycles that the input must not change state for.\n\n:param fpgaCycles: The number of FPGA cycles.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "setPeriodCycles"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalGlitchFilter", "type": "wpilib.DigitalGlitchFilter"}, {"name": "nanoseconds", "type": "int"}], "tooltip": "Sets the number of nanoseconds that the input must not change state for.\n\n:param nanoseconds: The number of nanoseconds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalGlitchFilter", "FUNC": "setPeriodNanoSeconds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalGlitchFilter"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.DigitalInput.ts b/src/blocks/generated/class_wpilib.DigitalInput.ts
index c8d4535a..3ffc4b25 100644
--- a/src/blocks/generated/class_wpilib.DigitalInput.ts
+++ b/src/blocks/generated/class_wpilib.DigitalInput.ts
@@ -11,14 +11,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 8 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalInput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DigitalInput", "args": [{"name": "channel", "type": "int"}], "tooltip": "Create an instance of a Digital Input class.\n\nCreates a digital input given a channel.\n\n:param channel: The DIO channel 0-9 are on-board, 10-25 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalInput", "type": "wpilib._wpilib.DigitalInput"}], "tooltip": "Get the value from a digital input channel.\n\nRetrieve the value of a single digital input channel from the FPGA.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.AnalogTriggerType", "args": [{"name": "digitalInput", "type": "wpilib._wpilib.DigitalInput"}], "tooltip": ":returns: The type of analog trigger output to be used. 0 for Digitals", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "getAnalogTriggerTypeForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalInput", "type": "wpilib._wpilib.DigitalInput"}], "tooltip": ":returns: The GPIO channel number that this object represents.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalInput", "type": "wpilib._wpilib.DigitalInput"}], "tooltip": ":returns: The HAL Handle to the specified source.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "getPortHandleForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalInput", "type": "wpilib._wpilib.DigitalInput"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalInput", "type": "wpilib._wpilib.DigitalInput"}], "tooltip": "Is source an AnalogTrigger", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "isAnalogTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalInput", "type": "wpilib._wpilib.DigitalInput"}, {"name": "device", "type": "int"}], "tooltip": "Indicates this input is used by a simulated device.\n\n:param device: simulated device handle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "setSimDevice"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalInput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DigitalInput", "args": [{"name": "channel", "type": "int"}], "tooltip": "Create an instance of a Digital Input class.\n\nCreates a digital input given a channel.\n\n:param channel: The DIO channel 0-9 are on-board, 10-25 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalInput", "type": "wpilib.DigitalInput"}], "tooltip": "Get the value from a digital input channel.\n\nRetrieve the value of a single digital input channel from the FPGA.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.AnalogTriggerType", "args": [{"name": "digitalInput", "type": "wpilib.DigitalInput"}], "tooltip": ":returns: The type of analog trigger output to be used. 0 for Digitals", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "getAnalogTriggerTypeForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalInput", "type": "wpilib.DigitalInput"}], "tooltip": ":returns: The GPIO channel number that this object represents.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalInput", "type": "wpilib.DigitalInput"}], "tooltip": ":returns: The HAL Handle to the specified source.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "getPortHandleForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalInput", "type": "wpilib.DigitalInput"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalInput", "type": "wpilib.DigitalInput"}], "tooltip": "Is source an AnalogTrigger", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "isAnalogTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalInput", "type": "wpilib.DigitalInput"}, {"name": "device", "type": "int"}], "tooltip": "Indicates this input is used by a simulated device.\n\n:param device: simulated device handle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalInput", "FUNC": "setSimDevice"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.DigitalOutput.ts b/src/blocks/generated/class_wpilib.DigitalOutput.ts
index e65a7c62..29162d00 100644
--- a/src/blocks/generated/class_wpilib.DigitalOutput.ts
+++ b/src/blocks/generated/class_wpilib.DigitalOutput.ts
@@ -11,22 +11,22 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 16 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalOutput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DigitalOutput", "args": [{"name": "channel", "type": "int"}], "tooltip": "Create an instance of a digital output.\n\nCreate a digital output given a channel.\n\n:param channel: The digital channel 0-9 are on-board, 10-25 are on the MXP\n port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}], "tooltip": "Change this line from a PWM output back to a static Digital Output line.\n\nFree up one of the 6 DO PWM generator resources that were in use.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "disablePWM"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}, {"name": "dutyCycle", "type": "float"}], "tooltip": "Enable a PWM PPS (Pulse Per Second) Output on this line.\n\nAllocate one of the 6 DO PWM generator resources from this module.\n\nSupply the duty-cycle to output.\n\nThe resolution of the duty cycle is 8-bit.\n\n:param dutyCycle: The duty-cycle to start generating. [0..1]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "enablePPS"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}, {"name": "initialDutyCycle", "type": "float"}], "tooltip": "Enable a PWM Output on this line.\n\nAllocate one of the 6 DO PWM generator resources from this module.\n\nSupply the initial duty-cycle to output so as to avoid a glitch when first\nstarting.\n\nThe resolution of the duty cycle is 8-bit for low frequencies (1kHz or\nless) but is reduced the higher the frequency of the PWM signal is.\n\n:param initialDutyCycle: The duty-cycle to start generating. [0..1]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "enablePWM"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}], "tooltip": "Gets the value being output from the Digital Output.\n\n:returns: the state of the digital output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.AnalogTriggerType", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}], "tooltip": ":returns: The type of analog trigger output to be used. 0 for Digitals", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "getAnalogTriggerTypeForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}], "tooltip": ":returns: The GPIO channel number that this object represents.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}], "tooltip": ":returns: The HAL Handle to the specified source.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "getPortHandleForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}], "tooltip": "Is source an AnalogTrigger", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "isAnalogTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}], "tooltip": "Determine if the pulse is still going.\n\nDetermine if a previously started pulse is still going.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "isPulsing"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}, {"name": "pulseLength", "type": "wpimath.units.seconds"}], "tooltip": "Output a single pulse on the digital output line.\n\nSend a single pulse on the digital output line where the pulse duration is\nspecified in seconds. Maximum of 65535 microseconds.\n\n:param pulseLength: The pulse length in seconds", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "pulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a digital output.\n\nSet the value of a digital output to either one (true) or zero (false).\n\n:param value: 1 (true) for high, 0 (false) for disabled", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}, {"name": "rate", "type": "float"}], "tooltip": "Change the PWM frequency of the PWM output on a Digital Output line.\n\nThe valid range is from 0.6 Hz to 19 kHz. The frequency resolution is\nlogarithmic.\n\nThere is only one PWM frequency for all digital channels.\n\n:param rate: The frequency to output all digital output PWM signals.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "setPWMRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}, {"name": "device", "type": "int"}], "tooltip": "Indicates this output is used by a simulated device.\n\n:param device: simulated device handle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "setSimDevice"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}, {"name": "dutyCycle", "type": "float"}], "tooltip": "Change the duty-cycle that is being generated on the line.\n\nThe resolution of the duty cycle is 8-bit for low frequencies (1kHz or\nless) but is reduced the higher the frequency of the PWM signal is.\n\n:param dutyCycle: The duty-cycle to change to. [0..1]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "updateDutyCycle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalOutput"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DigitalOutput", "args": [{"name": "channel", "type": "int"}], "tooltip": "Create an instance of a digital output.\n\nCreate a digital output given a channel.\n\n:param channel: The digital channel 0-9 are on-board, 10-25 are on the MXP\n port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}], "tooltip": "Change this line from a PWM output back to a static Digital Output line.\n\nFree up one of the 6 DO PWM generator resources that were in use.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "disablePWM"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}, {"name": "dutyCycle", "type": "float"}], "tooltip": "Enable a PWM PPS (Pulse Per Second) Output on this line.\n\nAllocate one of the 6 DO PWM generator resources from this module.\n\nSupply the duty-cycle to output.\n\nThe resolution of the duty cycle is 8-bit.\n\n:param dutyCycle: The duty-cycle to start generating. [0..1]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "enablePPS"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}, {"name": "initialDutyCycle", "type": "float"}], "tooltip": "Enable a PWM Output on this line.\n\nAllocate one of the 6 DO PWM generator resources from this module.\n\nSupply the initial duty-cycle to output so as to avoid a glitch when first\nstarting.\n\nThe resolution of the duty cycle is 8-bit for low frequencies (1kHz or\nless) but is reduced the higher the frequency of the PWM signal is.\n\n:param initialDutyCycle: The duty-cycle to start generating. [0..1]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "enablePWM"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}], "tooltip": "Gets the value being output from the Digital Output.\n\n:returns: the state of the digital output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.AnalogTriggerType", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}], "tooltip": ":returns: The type of analog trigger output to be used. 0 for Digitals", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "getAnalogTriggerTypeForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}], "tooltip": ":returns: The GPIO channel number that this object represents.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}], "tooltip": ":returns: The HAL Handle to the specified source.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "getPortHandleForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}], "tooltip": "Is source an AnalogTrigger", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "isAnalogTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}], "tooltip": "Determine if the pulse is still going.\n\nDetermine if a previously started pulse is still going.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "isPulsing"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}, {"name": "pulseLength", "type": "wpimath.units.seconds"}], "tooltip": "Output a single pulse on the digital output line.\n\nSend a single pulse on the digital output line where the pulse duration is\nspecified in seconds. Maximum of 65535 microseconds.\n\n:param pulseLength: The pulse length in seconds", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "pulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a digital output.\n\nSet the value of a digital output to either one (true) or zero (false).\n\n:param value: 1 (true) for high, 0 (false) for disabled", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}, {"name": "rate", "type": "float"}], "tooltip": "Change the PWM frequency of the PWM output on a Digital Output line.\n\nThe valid range is from 0.6 Hz to 19 kHz. The frequency resolution is\nlogarithmic.\n\nThere is only one PWM frequency for all digital channels.\n\n:param rate: The frequency to output all digital output PWM signals.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "setPWMRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}, {"name": "device", "type": "int"}], "tooltip": "Indicates this output is used by a simulated device.\n\n:param device: simulated device handle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "setSimDevice"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}, {"name": "dutyCycle", "type": "float"}], "tooltip": "Change the duty-cycle that is being generated on the line.\n\nThe resolution of the duty cycle is 8-bit for low frequencies (1kHz or\nless) but is reduced the higher the frequency of the PWM signal is.\n\n:param dutyCycle: The duty-cycle to change to. [0..1]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalOutput", "FUNC": "updateDutyCycle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.DigitalSource.ts b/src/blocks/generated/class_wpilib.DigitalSource.ts
index 8644d97c..0f26223a 100644
--- a/src/blocks/generated/class_wpilib.DigitalSource.ts
+++ b/src/blocks/generated/class_wpilib.DigitalSource.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalSource"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DigitalSource", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalSource"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.AnalogTriggerType", "args": [{"name": "digitalSource", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalSource", "FUNC": "getAnalogTriggerTypeForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalSource", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalSource", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalSource", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalSource", "FUNC": "getPortHandleForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalSource", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalSource", "FUNC": "isAnalogTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalSource"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DigitalSource", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalSource"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.AnalogTriggerType", "args": [{"name": "digitalSource", "type": "wpilib.DigitalSource"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalSource", "FUNC": "getAnalogTriggerTypeForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalSource", "type": "wpilib.DigitalSource"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalSource", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalSource", "type": "wpilib.DigitalSource"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalSource", "FUNC": "getPortHandleForRouting"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalSource", "type": "wpilib.DigitalSource"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DigitalSource", "FUNC": "isAnalogTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.DoubleSolenoid.ts b/src/blocks/generated/class_wpilib.DoubleSolenoid.ts
index 16776d9c..b9e0f476 100644
--- a/src/blocks/generated/class_wpilib.DoubleSolenoid.ts
+++ b/src/blocks/generated/class_wpilib.DoubleSolenoid.ts
@@ -13,16 +13,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DoubleSolenoid", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib._wpilib.PneumaticsModuleType"}, {"name": "forwardChannel", "type": "int"}, {"name": "reverseChannel", "type": "int"}], "tooltip": "Constructs a double solenoid for a specified module of a specific module\ntype.\n\n:param module: The module of the solenoid module to use.\n:param moduleType: The module type to use.\n:param forwardChannel: The forward channel on the module to control.\n:param reverseChannel: The reverse channel on the module to control.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DoubleSolenoid", "args": [{"name": "moduleType", "type": "wpilib._wpilib.PneumaticsModuleType"}, {"name": "forwardChannel", "type": "int"}, {"name": "reverseChannel", "type": "int"}], "tooltip": "Constructs a double solenoid for a default module of a specific module\ntype.\n\n:param moduleType: The module type to use.\n:param forwardChannel: The forward channel on the module to control.\n:param reverseChannel: The reverse channel on the module to control.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myValue"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.DoubleSolenoid.Value", "args": [{"name": "doubleSolenoid", "type": "wpilib._wpilib.DoubleSolenoid"}], "tooltip": "Read the current value of the solenoid.\n\n:returns: The current value of the solenoid.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "doubleSolenoid", "type": "wpilib._wpilib.DoubleSolenoid"}], "tooltip": "Get the forward channel.\n\n:returns: the forward channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "getFwdChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "doubleSolenoid", "type": "wpilib._wpilib.DoubleSolenoid"}], "tooltip": "Get the reverse channel.\n\n:returns: the reverse channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "getRevChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "doubleSolenoid", "type": "wpilib._wpilib.DoubleSolenoid"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "doubleSolenoid", "type": "wpilib._wpilib.DoubleSolenoid"}], "tooltip": "Check if the forward solenoid is Disabled.\n\nIf a solenoid is shorted, it is added to the DisabledList and disabled\nuntil power cycle, or until faults are cleared.\n\n@see ClearAllStickyFaults()\n\n:returns: If solenoid is disabled due to short.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "isFwdSolenoidDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "doubleSolenoid", "type": "wpilib._wpilib.DoubleSolenoid"}], "tooltip": "Check if the reverse solenoid is Disabled.\n\nIf a solenoid is shorted, it is added to the DisabledList and disabled\nuntil power cycle, or until faults are cleared.\n\n@see ClearAllStickyFaults()\n\n:returns: If solenoid is disabled due to short.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "isRevSolenoidDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "doubleSolenoid", "type": "wpilib._wpilib.DoubleSolenoid"}, {"name": "value", "type": "wpilib._wpilib.DoubleSolenoid.Value"}], "tooltip": "Set the value of a solenoid.\n\n:param value: The value to set (Off, Forward or Reverse)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "doubleSolenoid", "type": "wpilib._wpilib.DoubleSolenoid"}], "tooltip": "Toggle the value of the solenoid.\n\nIf the solenoid is set to forward, it'll be set to reverse. If the solenoid\nis set to reverse, it'll be set to forward. If the solenoid is set to off,\nnothing happens.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "toggle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DoubleSolenoid", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib.PneumaticsModuleType"}, {"name": "forwardChannel", "type": "int"}, {"name": "reverseChannel", "type": "int"}], "tooltip": "Constructs a double solenoid for a specified module of a specific module\ntype.\n\n:param module: The module of the solenoid module to use.\n:param moduleType: The module type to use.\n:param forwardChannel: The forward channel on the module to control.\n:param reverseChannel: The reverse channel on the module to control.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DoubleSolenoid", "args": [{"name": "moduleType", "type": "wpilib.PneumaticsModuleType"}, {"name": "forwardChannel", "type": "int"}, {"name": "reverseChannel", "type": "int"}], "tooltip": "Constructs a double solenoid for a default module of a specific module\ntype.\n\n:param moduleType: The module type to use.\n:param forwardChannel: The forward channel on the module to control.\n:param reverseChannel: The reverse channel on the module to control.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myValue"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.DoubleSolenoid.Value", "args": [{"name": "doubleSolenoid", "type": "wpilib.DoubleSolenoid"}], "tooltip": "Read the current value of the solenoid.\n\n:returns: The current value of the solenoid.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "doubleSolenoid", "type": "wpilib.DoubleSolenoid"}], "tooltip": "Get the forward channel.\n\n:returns: the forward channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "getFwdChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "doubleSolenoid", "type": "wpilib.DoubleSolenoid"}], "tooltip": "Get the reverse channel.\n\n:returns: the reverse channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "getRevChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "doubleSolenoid", "type": "wpilib.DoubleSolenoid"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "doubleSolenoid", "type": "wpilib.DoubleSolenoid"}], "tooltip": "Check if the forward solenoid is Disabled.\n\nIf a solenoid is shorted, it is added to the DisabledList and disabled\nuntil power cycle, or until faults are cleared.\n\n@see ClearAllStickyFaults()\n\n:returns: If solenoid is disabled due to short.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "isFwdSolenoidDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "doubleSolenoid", "type": "wpilib.DoubleSolenoid"}], "tooltip": "Check if the reverse solenoid is Disabled.\n\nIf a solenoid is shorted, it is added to the DisabledList and disabled\nuntil power cycle, or until faults are cleared.\n\n@see ClearAllStickyFaults()\n\n:returns: If solenoid is disabled due to short.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "isRevSolenoidDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "doubleSolenoid", "type": "wpilib.DoubleSolenoid"}, {"name": "value", "type": "wpilib.DoubleSolenoid.Value"}], "tooltip": "Set the value of a solenoid.\n\n:param value: The value to set (Off, Forward or Reverse)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "doubleSolenoid", "type": "wpilib.DoubleSolenoid"}], "tooltip": "Toggle the value of the solenoid.\n\nIf the solenoid is set to forward, it'll be set to reverse. If the solenoid\nis set to reverse, it'll be set to forward. If the solenoid is set to off,\nnothing happens.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DoubleSolenoid", "FUNC": "toggle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoid"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.DoubleSolenoid.Value", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.DoubleSolenoid.Value", "ENUM_VALUE": "kForward"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.DoubleSolenoid.Value", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.DoubleSolenoid.Value", "ENUM_VALUE": "kOff"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.DoubleSolenoid.Value", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.DoubleSolenoid.Value", "ENUM_VALUE": "kReverse"}},
diff --git a/src/blocks/generated/class_wpilib.DriverStation.ts b/src/blocks/generated/class_wpilib.DriverStation.ts
index 76edc620..5744bfbf 100644
--- a/src/blocks/generated/class_wpilib.DriverStation.ts
+++ b/src/blocks/generated/class_wpilib.DriverStation.ts
@@ -17,9 +17,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 49 blocks.
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.DriverStation", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "VAR": "kJoystickPorts"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAlliance]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Optional[wpilib._wpilib.DriverStation.Alliance]", "args": [], "tooltip": "Get the current alliance from the FMS.\n\nIf the FMS is not connected, it is set from the team alliance setting on\nthe driver station.\n\n:returns: The alliance (red or blue) or an empty optional if the alliance is\n invalid", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getAlliance"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Optional[wpilib._wpilib.DriverStation.Alliance]", "args": [], "tooltip": "Get the current alliance from the FMS.\n\nIf the FMS is not connected, it is set from the team alliance setting on\nthe driver station.\n\n:returns: The alliance (red or blue) or an empty optional if the alliance is\n invalid", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getAlliance"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "float", "args": [], "tooltip": "Read the battery voltage.\n\n:returns: The battery voltage in Volts.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getBatteryVoltage"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[bool, bool, bool]", "args": [{"name": "driverStation", "type": "wpilib._wpilib.DriverStation"}], "tooltip": "More efficient way to determine what state the robot is in.\n\n:returns: booleans representing enabled, isautonomous, istest\n\n.. versionadded:: 2019.2.1\n\n.. note:: This function only exists in RobotPy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getControlState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDriverStation"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[bool, bool, bool]", "args": [{"name": "driverStation", "type": "wpilib.DriverStation"}], "tooltip": "More efficient way to determine what state the robot is in.\n\n:returns: booleans representing enabled, isautonomous, istest\n\n.. versionadded:: 2019.2.1\n\n.. note:: This function only exists in RobotPy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getControlState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDriverStation"}}}}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "str", "args": [], "tooltip": "Returns the name of the competition event provided by the FMS.\n\n:returns: A string containing the event name", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getEventName"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "str", "args": [], "tooltip": "Returns the game specific message provided by the FMS.\n\nIf the FMS is not connected, it is set from the game data setting on the\ndriver station.\n\n:returns: A string containing the game specific message.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getGameSpecificMessage"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [{"name": "stick", "type": "int"}, {"name": "axis", "type": "int"}], "tooltip": "Returns the types of Axes on a given joystick port.\n\n:param stick: The joystick port number and the target axis\n:param axis: The analog axis value to read from the joystick.\n\n:returns: What type of axis the axis is reporting to be", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getJoystickAxisType"}},
@@ -29,7 +29,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Optional[int]", "args": [], "tooltip": "Return the driver station location from the FMS.\n\nIf the FMS is not connected, it is set from the team alliance setting on\nthe driver station.\n\nThis could return 1, 2, or 3.\n\n:returns: The location of the driver station (1-3, 0 for invalid)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getLocation"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [], "tooltip": "Returns the match number provided by the FMS.\n\n:returns: The number of the match", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getMatchNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.seconds", "args": [], "tooltip": "Return the approximate match time. The FMS does not send an official match\ntime to the robots, but does send an approximate match time. The value will\ncount down the time remaining in the current period (auto or teleop).\nWarning: This is not an official time (so it cannot be used to dispute ref\ncalls or guarantee that a function will trigger before the match ends).\n\nWhen connected to the real field, this number only changes in full\ninteger increments, and always counts down.\n\nWhen the DS is in practice mode, this number is a floating point number,\nand counts down.\n\nWhen the DS is in teleop or autonomous mode, this number is a floating\npoint number, and counts up.\n\nSimulation matches DS behavior without an FMS connected.\n\n:returns: Time remaining in current match period (auto or teleop) in seconds", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getMatchTime"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMatchType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.DriverStation.MatchType", "args": [], "tooltip": "Returns the type of match being played provided by the FMS.\n\n:returns: The match type enum (kNone, kPractice, kQualification,\n kElimination)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getMatchType"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMatchType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.DriverStation.MatchType", "args": [], "tooltip": "Returns the type of match being played provided by the FMS.\n\n:returns: The match type enum (kNone, kPractice, kQualification,\n kElimination)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getMatchType"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [], "tooltip": "Returns the number of times the current match has been replayed from the\nFMS.\n\n:returns: The number of replays", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getReplayNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "float", "args": [{"name": "stick", "type": "int"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis on a joystick.\n\nThis depends on the mapping of the joystick connected to the specified\nport.\n\n:param stick: The joystick to read.\n:param axis: The analog axis value to read from the joystick.\n\n:returns: The value of the axis on the joystick.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getStickAxis"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [{"name": "stick", "type": "int"}], "tooltip": "Returns the number of axes on a given joystick port.\n\n:param stick: The joystick port number\n\n:returns: The number of axes on the indicated joystick", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "getStickAxisCount"}},
@@ -57,7 +57,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Copy data from the DS task for the user. If no new data exists, it will\njust be returned, otherwise the data will be copied from the DS polling\nloop.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "refreshData"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "handle", "type": "int"}], "tooltip": "Unregisters the given handle from DS data refresh notifications.\n\n:param handle: The event handle.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "removeRefreshedDataEventHandle"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "silence", "type": "bool"}], "tooltip": "Allows the user to specify whether they want joystick connection warnings\nto be printed to the console. This setting is ignored when the FMS is\nconnected -- warnings will always be on in that scenario.\n\n:param silence: Whether warning messages should be silenced.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "silenceJoystickConnectionWarning"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "log", "type": "wpiutil._wpiutil.log.DataLog"}, {"name": "logJoysticks", "type": "bool"}], "tooltip": "Starts logging DriverStation data to data log. Repeated calls are ignored.\n\n:param log: data log\n:param logJoysticks: if true, log joystick data", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "startDataLog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDataLog"}}}}, "ARG1": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "log", "type": "wpiutil.log.DataLog"}, {"name": "logJoysticks", "type": "bool"}], "tooltip": "Starts logging DriverStation data to data log. Repeated calls are ignored.\n\n:param log: data log\n:param logJoysticks: if true, log joystick data", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "startDataLog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDataLog"}}}}, "ARG1": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "timeout", "type": "wpimath.units.seconds"}], "tooltip": "Wait for a DS connection.\n\n:param timeout: timeout in seconds. 0 for infinite.\n\n:returns: true if connected, false if timeout", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DriverStation", "FUNC": "waitForDsConnection"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.DriverStation.Alliance", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.DriverStation.Alliance", "ENUM_VALUE": "kBlue"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.DriverStation.Alliance", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.DriverStation.Alliance", "ENUM_VALUE": "kRed"}},
diff --git a/src/blocks/generated/class_wpilib.DutyCycle.ts b/src/blocks/generated/class_wpilib.DutyCycle.ts
index b123ee5f..a7ccc4ef 100644
--- a/src/blocks/generated/class_wpilib.DutyCycle.ts
+++ b/src/blocks/generated/class_wpilib.DutyCycle.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycle"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DutyCycle", "args": [{"name": "source", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Constructs a DutyCycle input from a DigitalSource input.\n\nThis class does not own the inputted source.\n\n:param source: The DigitalSource to use.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycle", "type": "wpilib._wpilib.DutyCycle"}], "tooltip": "Get the FPGA index for the DutyCycle.\n\n:returns: the FPGA index", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycle", "FUNC": "getFPGAIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycle", "type": "wpilib._wpilib.DutyCycle"}], "tooltip": "Get the frequency of the duty cycle signal.\n\n:returns: frequency in Hertz", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycle", "FUNC": "getFrequency"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "dutyCycle", "type": "wpilib._wpilib.DutyCycle"}], "tooltip": "Get the raw high time of the duty cycle signal.\n\n:returns: high time of last pulse", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycle", "FUNC": "getHighTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "dutyCycle", "type": "wpilib._wpilib.DutyCycle"}], "tooltip": "Get the output ratio of the duty cycle signal.\n\n0 means always low, 1 means always high.\n\n:returns: output ratio between 0 and 1", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycle", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycle", "type": "wpilib._wpilib.DutyCycle"}], "tooltip": "Get the channel of the source.\n\n:returns: the source channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycle", "FUNC": "getSourceChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycle"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DutyCycle", "args": [{"name": "source", "type": "wpilib.DigitalSource"}], "tooltip": "Constructs a DutyCycle input from a DigitalSource input.\n\nThis class does not own the inputted source.\n\n:param source: The DigitalSource to use.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycle", "type": "wpilib.DutyCycle"}], "tooltip": "Get the FPGA index for the DutyCycle.\n\n:returns: the FPGA index", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycle", "FUNC": "getFPGAIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycle", "type": "wpilib.DutyCycle"}], "tooltip": "Get the frequency of the duty cycle signal.\n\n:returns: frequency in Hertz", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycle", "FUNC": "getFrequency"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "dutyCycle", "type": "wpilib.DutyCycle"}], "tooltip": "Get the raw high time of the duty cycle signal.\n\n:returns: high time of last pulse", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycle", "FUNC": "getHighTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "dutyCycle", "type": "wpilib.DutyCycle"}], "tooltip": "Get the output ratio of the duty cycle signal.\n\n0 means always low, 1 means always high.\n\n:returns: output ratio between 0 and 1", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycle", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycle", "type": "wpilib.DutyCycle"}], "tooltip": "Get the channel of the source.\n\n:returns: the source channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycle", "FUNC": "getSourceChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.DutyCycleEncoder.ts b/src/blocks/generated/class_wpilib.DutyCycleEncoder.ts
index 90de93e5..46bde2d5 100644
--- a/src/blocks/generated/class_wpilib.DutyCycleEncoder.ts
+++ b/src/blocks/generated/class_wpilib.DutyCycleEncoder.ts
@@ -11,22 +11,22 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 16 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DutyCycleEncoder", "args": [{"name": "channel", "type": "int"}], "tooltip": "Construct a new DutyCycleEncoder on a specific channel.\n\nThis has a fullRange of 1 and an expectedZero of 0.\n\n:param channel: the channel to attach to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DutyCycleEncoder", "args": [{"name": "dutyCycle", "type": "wpilib._wpilib.DutyCycle"}], "tooltip": "Construct a new DutyCycleEncoder attached to an existing DutyCycle object.\n\nThis has a fullRange of 1 and an expectedZero of 0.\n\n:param dutyCycle: the duty cycle to attach to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DutyCycleEncoder", "args": [{"name": "digitalSource", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Construct a new DutyCycleEncoder attached to a DigitalSource object.\n\nThis has a fullRange of 1 and an expectedZero of 0.\n\n:param digitalSource: the digital source to attach to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DutyCycleEncoder", "args": [{"name": "channel", "type": "int"}, {"name": "fullRange", "type": "float"}, {"name": "expectedZero", "type": "float"}], "tooltip": "Construct a new DutyCycleEncoder on a specific channel.\n\n:param channel: the channel to attach to\n:param fullRange: the value to report at maximum travel\n:param expectedZero: the reading where you would expect a 0 from get()", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DutyCycleEncoder", "args": [{"name": "dutyCycle", "type": "wpilib._wpilib.DutyCycle"}, {"name": "fullRange", "type": "float"}, {"name": "expectedZero", "type": "float"}], "tooltip": "Construct a new DutyCycleEncoder attached to an existing DutyCycle object.\n\n:param dutyCycle: the duty cycle to attach to\n:param fullRange: the value to report at maximum travel\n:param expectedZero: the reading where you would expect a 0 from get()", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.DutyCycleEncoder", "args": [{"name": "digitalSource", "type": "wpilib._wpilib.DigitalSource"}, {"name": "fullRange", "type": "float"}, {"name": "expectedZero", "type": "float"}], "tooltip": "Construct a new DutyCycleEncoder attached to a DigitalSource object.\n\n:param digitalSource: the digital source to attach to\n:param fullRange: the value to report at maximum travel\n:param expectedZero: the reading where you would expect a 0 from get()", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "dutyCycleEncoder", "type": "wpilib._wpilib.DutyCycleEncoder"}], "tooltip": "Get the encoder value.\n\n:returns: the encoder value scaled by the full range input", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycleEncoder", "type": "wpilib._wpilib.DutyCycleEncoder"}], "tooltip": "Get the FPGA index for the DutyCycleEncoder.\n\n:returns: the FPGA index", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "getFPGAIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycleEncoder", "type": "wpilib._wpilib.DutyCycleEncoder"}], "tooltip": "Get the frequency in Hz of the duty cycle signal from the encoder.\n\n:returns: duty cycle frequency in Hz", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "getFrequency"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycleEncoder", "type": "wpilib._wpilib.DutyCycleEncoder"}], "tooltip": "Get the channel of the source.\n\n:returns: the source channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "getSourceChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoder", "type": "wpilib._wpilib.DutyCycleEncoder"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dutyCycleEncoder", "type": "wpilib._wpilib.DutyCycleEncoder"}], "tooltip": "Get if the sensor is connected\n\nThis uses the duty cycle frequency to determine if the sensor is connected.\nBy default, a value of 100 Hz is used as the threshold, and this value can\nbe changed with SetConnectedFrequencyThreshold.\n\n:returns: true if the sensor is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoder", "type": "wpilib._wpilib.DutyCycleEncoder"}, {"name": "frequency", "type": "wpimath.units.hertz"}], "tooltip": "Sets the assumed frequency of the connected device.\n\nBy default, the DutyCycle engine has to compute the frequency of the\ninput signal. This can result in both delayed readings and jumpy readings.\nTo solve this, you can pass the expected frequency of the sensor to this\nfunction. This will use that frequency to compute the DutyCycle percentage,\nrather than the computed frequency.\n\n:param frequency: the assumed frequency of the sensor", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "setAssumedFrequency"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoder", "type": "wpilib._wpilib.DutyCycleEncoder"}, {"name": "frequency", "type": "int"}], "tooltip": "Change the frequency threshold for detecting connection used by\nIsConnected.\n\n:param frequency: the minimum frequency in Hz.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "setConnectedFrequencyThreshold"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoder", "type": "wpilib._wpilib.DutyCycleEncoder"}, {"name": "min", "type": "float"}, {"name": "max", "type": "float"}], "tooltip": "Set the encoder duty cycle range. As the encoder needs to maintain a duty\ncycle, the duty cycle cannot go all the way to 0% or all the way to 100%.\nFor example, an encoder with a 4096 us period might have a minimum duty\ncycle of 1 us / 4096 us and a maximum duty cycle of 4095 / 4096 us. Setting\nthe range will result in an encoder duty cycle less than or equal to the\nminimum being output as 0 rotation, the duty cycle greater than or equal to\nthe maximum being output as 1 rotation, and values in between linearly\nscaled from 0 to 1.\n\n:param min: minimum duty cycle (0-1 range)\n:param max: maximum duty cycle (0-1 range)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "setDutyCycleRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoder", "type": "wpilib._wpilib.DutyCycleEncoder"}, {"name": "inverted", "type": "bool"}], "tooltip": "Set if this encoder is inverted.\n\n:param inverted: true to invert the encoder, false otherwise", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DutyCycleEncoder", "args": [{"name": "channel", "type": "int"}], "tooltip": "Construct a new DutyCycleEncoder on a specific channel.\n\nThis has a fullRange of 1 and an expectedZero of 0.\n\n:param channel: the channel to attach to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DutyCycleEncoder", "args": [{"name": "dutyCycle", "type": "wpilib.DutyCycle"}], "tooltip": "Construct a new DutyCycleEncoder attached to an existing DutyCycle object.\n\nThis has a fullRange of 1 and an expectedZero of 0.\n\n:param dutyCycle: the duty cycle to attach to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DutyCycleEncoder", "args": [{"name": "digitalSource", "type": "wpilib.DigitalSource"}], "tooltip": "Construct a new DutyCycleEncoder attached to a DigitalSource object.\n\nThis has a fullRange of 1 and an expectedZero of 0.\n\n:param digitalSource: the digital source to attach to", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DutyCycleEncoder", "args": [{"name": "channel", "type": "int"}, {"name": "fullRange", "type": "float"}, {"name": "expectedZero", "type": "float"}], "tooltip": "Construct a new DutyCycleEncoder on a specific channel.\n\n:param channel: the channel to attach to\n:param fullRange: the value to report at maximum travel\n:param expectedZero: the reading where you would expect a 0 from get()", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DutyCycleEncoder", "args": [{"name": "dutyCycle", "type": "wpilib.DutyCycle"}, {"name": "fullRange", "type": "float"}, {"name": "expectedZero", "type": "float"}], "tooltip": "Construct a new DutyCycleEncoder attached to an existing DutyCycle object.\n\n:param dutyCycle: the duty cycle to attach to\n:param fullRange: the value to report at maximum travel\n:param expectedZero: the reading where you would expect a 0 from get()", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.DutyCycleEncoder", "args": [{"name": "digitalSource", "type": "wpilib.DigitalSource"}, {"name": "fullRange", "type": "float"}, {"name": "expectedZero", "type": "float"}], "tooltip": "Construct a new DutyCycleEncoder attached to a DigitalSource object.\n\n:param digitalSource: the digital source to attach to\n:param fullRange: the value to report at maximum travel\n:param expectedZero: the reading where you would expect a 0 from get()", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "dutyCycleEncoder", "type": "wpilib.DutyCycleEncoder"}], "tooltip": "Get the encoder value.\n\n:returns: the encoder value scaled by the full range input", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycleEncoder", "type": "wpilib.DutyCycleEncoder"}], "tooltip": "Get the FPGA index for the DutyCycleEncoder.\n\n:returns: the FPGA index", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "getFPGAIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycleEncoder", "type": "wpilib.DutyCycleEncoder"}], "tooltip": "Get the frequency in Hz of the duty cycle signal from the encoder.\n\n:returns: duty cycle frequency in Hz", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "getFrequency"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycleEncoder", "type": "wpilib.DutyCycleEncoder"}], "tooltip": "Get the channel of the source.\n\n:returns: the source channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "getSourceChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoder", "type": "wpilib.DutyCycleEncoder"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dutyCycleEncoder", "type": "wpilib.DutyCycleEncoder"}], "tooltip": "Get if the sensor is connected\n\nThis uses the duty cycle frequency to determine if the sensor is connected.\nBy default, a value of 100 Hz is used as the threshold, and this value can\nbe changed with SetConnectedFrequencyThreshold.\n\n:returns: true if the sensor is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoder", "type": "wpilib.DutyCycleEncoder"}, {"name": "frequency", "type": "wpimath.units.hertz"}], "tooltip": "Sets the assumed frequency of the connected device.\n\nBy default, the DutyCycle engine has to compute the frequency of the\ninput signal. This can result in both delayed readings and jumpy readings.\nTo solve this, you can pass the expected frequency of the sensor to this\nfunction. This will use that frequency to compute the DutyCycle percentage,\nrather than the computed frequency.\n\n:param frequency: the assumed frequency of the sensor", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "setAssumedFrequency"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoder", "type": "wpilib.DutyCycleEncoder"}, {"name": "frequency", "type": "int"}], "tooltip": "Change the frequency threshold for detecting connection used by\nIsConnected.\n\n:param frequency: the minimum frequency in Hz.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "setConnectedFrequencyThreshold"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoder", "type": "wpilib.DutyCycleEncoder"}, {"name": "min", "type": "float"}, {"name": "max", "type": "float"}], "tooltip": "Set the encoder duty cycle range. As the encoder needs to maintain a duty\ncycle, the duty cycle cannot go all the way to 0% or all the way to 100%.\nFor example, an encoder with a 4096 us period might have a minimum duty\ncycle of 1 us / 4096 us and a maximum duty cycle of 4095 / 4096 us. Setting\nthe range will result in an encoder duty cycle less than or equal to the\nminimum being output as 0 rotation, the duty cycle greater than or equal to\nthe maximum being output as 1 rotation, and values in between linearly\nscaled from 0 to 1.\n\n:param min: minimum duty cycle (0-1 range)\n:param max: maximum duty cycle (0-1 range)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "setDutyCycleRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoder", "type": "wpilib.DutyCycleEncoder"}, {"name": "inverted", "type": "bool"}], "tooltip": "Set if this encoder is inverted.\n\n:param inverted: true to invert the encoder, false otherwise", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.DutyCycleEncoder", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Encoder.ts b/src/blocks/generated/class_wpilib.Encoder.ts
index 0aec3567..e4489e8b 100644
--- a/src/blocks/generated/class_wpilib.Encoder.ts
+++ b/src/blocks/generated/class_wpilib.Encoder.ts
@@ -13,29 +13,29 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 27 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Encoder", "args": [{"name": "aChannel", "type": "int"}, {"name": "bChannel", "type": "int"}, {"name": "reverseDirection", "type": "bool"}, {"name": "encodingType", "type": "wpilib.interfaces._interfaces.CounterBase.EncodingType"}], "tooltip": "Encoder constructor.\n\nConstruct a Encoder given a and b channels.\n\nThe counter will start counting immediately.\n\n:param aChannel: The a channel DIO channel. 0-9 are on-board, 10-25\n are on the MXP port\n:param bChannel: The b channel DIO channel. 0-9 are on-board, 10-25\n are on the MXP port\n:param reverseDirection: represents the orientation of the encoder and\n inverts the output values if necessary so forward\n represents positive values.\n:param encodingType: either k1X, k2X, or k4X to indicate 1X, 2X or 4X\n decoding. If 4X is selected, then an encoder FPGA\n object is used and the returned counts will be 4x\n the encoder spec'd value since all rising and\n falling edges are counted. If 1X or 2X are selected\n then a counter object will be used and the returned\n value will either exactly match the spec'd count or\n be double (2x) the spec'd count.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder"}, "inputs": {"ARG2": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "FALSE"}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncodingType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Encoder", "args": [{"name": "aSource", "type": "wpilib._wpilib.DigitalSource"}, {"name": "bSource", "type": "wpilib._wpilib.DigitalSource"}, {"name": "reverseDirection", "type": "bool"}, {"name": "encodingType", "type": "wpilib.interfaces._interfaces.CounterBase.EncodingType"}], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG2": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "FALSE"}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncodingType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "Gets the current count.\n\nReturns the current count on the Encoder. This method compensates for the\ndecoding type.\n\n:returns: Current count from the Encoder adjusted for the 1x, 2x, or 4x scale\n factor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "The last direction the encoder value changed.\n\n:returns: The last direction the encoder value changed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "Get the distance the robot has driven since the last reset.\n\n:returns: The distance driven since the last reset as scaled by the value\n from SetDistancePerPulse().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getDistance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "Get the distance per pulse for this encoder.\n\n:returns: The scale factor that will be used to convert pulses to useful\n units.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getDistancePerPulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "The encoding scale factor 1x, 2x, or 4x, per the requested encodingType.\n\nUsed to divide raw edge counts down to spec'd counts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getEncodingScale"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getFPGAIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "Returns the period of the most recent pulse.\n\nReturns the period of the most recent Encoder pulse in seconds. This method\ncompensates for the decoding type.\n\nWarning: This returns unscaled periods. Use GetRate() for rates that are\nscaled using the value from SetDistancePerPulse().\n\n:deprecated: Use getRate() in favor of this method.\n\n:returns: Period in seconds of the most recent pulse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "Get the current rate of the encoder.\n\nUnits are distance per second as scaled by the value from\nSetDistancePerPulse().\n\n:returns: The current rate of the encoder.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "Gets the raw value from the encoder.\n\nThe raw value is the actual count unscaled by the 1x, 2x, or 4x scale\nfactor.\n\n:returns: Current raw count from the encoder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "Get the Samples to Average which specifies the number of samples of the\ntimer to average when calculating the period.\n\nPerform averaging to account for mechanical imperfections or as\noversampling to increase resolution.\n\n:returns: The number of samples being averaged (from 1 to 127)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "Determine if the encoder is stopped.\n\nUsing the MaxPeriod value, a boolean is returned that is true if the\nencoder is considered stopped and false if it is still moving. A stopped\nencoder is one where the most recent pulse width exceeds the MaxPeriod.\n\n:returns: True if the encoder is considered stopped.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getStopped"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "Reset the Encoder distance to zero.\n\nResets the current count to zero on the encoder.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}, {"name": "distancePerPulse", "type": "float"}], "tooltip": "Set the distance per pulse for this encoder.\n\nThis sets the multiplier used to determine the distance driven based on the\ncount value from the encoder.\n\nDo not include the decoding type in this scale. The library already\ncompensates for the decoding type.\n\nSet this value based on the encoder's rated Pulses per Revolution and\nfactor in gearing reductions following the encoder shaft.\n\nThis distance can be in any units you like, linear or angular.\n\n:param distancePerPulse: The scale factor that will be used to convert\n pulses to useful units.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setDistancePerPulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}, {"name": "channel", "type": "int"}, {"name": "type", "type": "wpilib._wpilib.Encoder.IndexingType"}], "tooltip": "Set the index source for the encoder.\n\nWhen this source is activated, the encoder count automatically resets.\n\n:param channel: A DIO channel to set as the encoder index\n:param type: The state that will cause the encoder to reset", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setIndexSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIndexingType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}, {"name": "source", "type": "wpilib._wpilib.DigitalSource"}, {"name": "type", "type": "wpilib._wpilib.Encoder.IndexingType"}], "tooltip": "Set the index source for the encoder.\n\nWhen this source is activated, the encoder count automatically resets.\n\n:param source: A digital source to set as the encoder index\n:param type: The state that will cause the encoder to reset", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setIndexSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIndexingType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}, {"name": "maxPeriod", "type": "wpimath.units.seconds"}], "tooltip": "Sets the maximum period for stopped detection.\n\nSets the value that represents the maximum period of the Encoder before it\nwill assume that the attached device is stopped. This timeout allows users\nto determine if the wheels or other shaft has stopped rotating.\nThis method compensates for the decoding type.\n\n:deprecated: Use SetMinRate() in favor of this method. This takes unscaled\n periods and SetMinRate() scales using value from\n SetDistancePerPulse().\n\n:param maxPeriod: The maximum time between rising and falling edges before\n the FPGA will report the device stopped. This is expressed\n in seconds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setMaxPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}, {"name": "minRate", "type": "float"}], "tooltip": "Set the minimum rate of the device before the hardware reports it stopped.\n\n:param minRate: The minimum rate. The units are in distance per second as\n scaled by the value from SetDistancePerPulse().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setMinRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}, {"name": "reverseDirection", "type": "bool"}], "tooltip": "Set the direction sensing for this encoder.\n\nThis sets the direction sensing on the encoder so that it could count in\nthe correct software direction regardless of the mounting.\n\n:param reverseDirection: true if the encoder direction should be reversed", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setReverseDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}, {"name": "samplesToAverage", "type": "int"}], "tooltip": "Set the Samples to Average which specifies the number of samples of the\ntimer to average when calculating the period.\n\nPerform averaging to account for mechanical imperfections or as\noversampling to increase resolution.\n\n:param samplesToAverage: The number of samples to average from 1 to 127.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}, {"name": "device", "type": "int"}], "tooltip": "Indicates this encoder is used by a simulated device.\n\n:param device: simulated device handle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setSimDevice"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Encoder", "args": [{"name": "aChannel", "type": "int"}, {"name": "bChannel", "type": "int"}, {"name": "reverseDirection", "type": "bool"}, {"name": "encodingType", "type": "wpilib.interfaces.CounterBase.EncodingType"}], "tooltip": "Encoder constructor.\n\nConstruct a Encoder given a and b channels.\n\nThe counter will start counting immediately.\n\n:param aChannel: The a channel DIO channel. 0-9 are on-board, 10-25\n are on the MXP port\n:param bChannel: The b channel DIO channel. 0-9 are on-board, 10-25\n are on the MXP port\n:param reverseDirection: represents the orientation of the encoder and\n inverts the output values if necessary so forward\n represents positive values.\n:param encodingType: either k1X, k2X, or k4X to indicate 1X, 2X or 4X\n decoding. If 4X is selected, then an encoder FPGA\n object is used and the returned counts will be 4x\n the encoder spec'd value since all rising and\n falling edges are counted. If 1X or 2X are selected\n then a counter object will be used and the returned\n value will either exactly match the spec'd count or\n be double (2x) the spec'd count.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder"}, "inputs": {"ARG2": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "FALSE"}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncodingType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEncoder"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Encoder", "args": [{"name": "aSource", "type": "wpilib.DigitalSource"}, {"name": "bSource", "type": "wpilib.DigitalSource"}, {"name": "reverseDirection", "type": "bool"}, {"name": "encodingType", "type": "wpilib.interfaces.CounterBase.EncodingType"}], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG2": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "FALSE"}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncodingType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "Gets the current count.\n\nReturns the current count on the Encoder. This method compensates for the\ndecoding type.\n\n:returns: Current count from the Encoder adjusted for the 1x, 2x, or 4x scale\n factor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "The last direction the encoder value changed.\n\n:returns: The last direction the encoder value changed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "Get the distance the robot has driven since the last reset.\n\n:returns: The distance driven since the last reset as scaled by the value\n from SetDistancePerPulse().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getDistance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "Get the distance per pulse for this encoder.\n\n:returns: The scale factor that will be used to convert pulses to useful\n units.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getDistancePerPulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "The encoding scale factor 1x, 2x, or 4x, per the requested encodingType.\n\nUsed to divide raw edge counts down to spec'd counts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getEncodingScale"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getFPGAIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "Returns the period of the most recent pulse.\n\nReturns the period of the most recent Encoder pulse in seconds. This method\ncompensates for the decoding type.\n\nWarning: This returns unscaled periods. Use GetRate() for rates that are\nscaled using the value from SetDistancePerPulse().\n\n:deprecated: Use getRate() in favor of this method.\n\n:returns: Period in seconds of the most recent pulse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "Get the current rate of the encoder.\n\nUnits are distance per second as scaled by the value from\nSetDistancePerPulse().\n\n:returns: The current rate of the encoder.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "Gets the raw value from the encoder.\n\nThe raw value is the actual count unscaled by the 1x, 2x, or 4x scale\nfactor.\n\n:returns: Current raw count from the encoder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "Get the Samples to Average which specifies the number of samples of the\ntimer to average when calculating the period.\n\nPerform averaging to account for mechanical imperfections or as\noversampling to increase resolution.\n\n:returns: The number of samples being averaged (from 1 to 127)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "Determine if the encoder is stopped.\n\nUsing the MaxPeriod value, a boolean is returned that is true if the\nencoder is considered stopped and false if it is still moving. A stopped\nencoder is one where the most recent pulse width exceeds the MaxPeriod.\n\n:returns: True if the encoder is considered stopped.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "getStopped"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib.Encoder"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "Reset the Encoder distance to zero.\n\nResets the current count to zero on the encoder.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib.Encoder"}, {"name": "distancePerPulse", "type": "float"}], "tooltip": "Set the distance per pulse for this encoder.\n\nThis sets the multiplier used to determine the distance driven based on the\ncount value from the encoder.\n\nDo not include the decoding type in this scale. The library already\ncompensates for the decoding type.\n\nSet this value based on the encoder's rated Pulses per Revolution and\nfactor in gearing reductions following the encoder shaft.\n\nThis distance can be in any units you like, linear or angular.\n\n:param distancePerPulse: The scale factor that will be used to convert\n pulses to useful units.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setDistancePerPulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib.Encoder"}, {"name": "channel", "type": "int"}, {"name": "type", "type": "wpilib.Encoder.IndexingType"}], "tooltip": "Set the index source for the encoder.\n\nWhen this source is activated, the encoder count automatically resets.\n\n:param channel: A DIO channel to set as the encoder index\n:param type: The state that will cause the encoder to reset", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setIndexSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIndexingType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib.Encoder"}, {"name": "source", "type": "wpilib.DigitalSource"}, {"name": "type", "type": "wpilib.Encoder.IndexingType"}], "tooltip": "Set the index source for the encoder.\n\nWhen this source is activated, the encoder count automatically resets.\n\n:param source: A digital source to set as the encoder index\n:param type: The state that will cause the encoder to reset", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setIndexSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIndexingType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib.Encoder"}, {"name": "maxPeriod", "type": "wpimath.units.seconds"}], "tooltip": "Sets the maximum period for stopped detection.\n\nSets the value that represents the maximum period of the Encoder before it\nwill assume that the attached device is stopped. This timeout allows users\nto determine if the wheels or other shaft has stopped rotating.\nThis method compensates for the decoding type.\n\n:deprecated: Use SetMinRate() in favor of this method. This takes unscaled\n periods and SetMinRate() scales using value from\n SetDistancePerPulse().\n\n:param maxPeriod: The maximum time between rising and falling edges before\n the FPGA will report the device stopped. This is expressed\n in seconds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setMaxPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib.Encoder"}, {"name": "minRate", "type": "float"}], "tooltip": "Set the minimum rate of the device before the hardware reports it stopped.\n\n:param minRate: The minimum rate. The units are in distance per second as\n scaled by the value from SetDistancePerPulse().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setMinRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib.Encoder"}, {"name": "reverseDirection", "type": "bool"}], "tooltip": "Set the direction sensing for this encoder.\n\nThis sets the direction sensing on the encoder so that it could count in\nthe correct software direction regardless of the mounting.\n\n:param reverseDirection: true if the encoder direction should be reversed", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setReverseDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib.Encoder"}, {"name": "samplesToAverage", "type": "int"}], "tooltip": "Set the Samples to Average which specifies the number of samples of the\ntimer to average when calculating the period.\n\nPerform averaging to account for mechanical imperfections or as\noversampling to increase resolution.\n\n:param samplesToAverage: The number of samples to average from 1 to 127.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoder", "type": "wpilib.Encoder"}, {"name": "device", "type": "int"}], "tooltip": "Indicates this encoder is used by a simulated device.\n\n:param device: simulated device handle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Encoder", "FUNC": "setSimDevice"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Encoder.IndexingType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Encoder.IndexingType", "ENUM_VALUE": "kResetOnFallingEdge"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Encoder.IndexingType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Encoder.IndexingType", "ENUM_VALUE": "kResetOnRisingEdge"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Encoder.IndexingType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Encoder.IndexingType", "ENUM_VALUE": "kResetWhileHigh"}},
diff --git a/src/blocks/generated/class_wpilib.Field2d.ts b/src/blocks/generated/class_wpilib.Field2d.ts
index 940eb2a2..93903fcf 100644
--- a/src/blocks/generated/class_wpilib.Field2d.ts
+++ b/src/blocks/generated/class_wpilib.Field2d.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myField2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Field2d", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFieldObject2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.FieldObject2d", "args": [{"name": "field2d", "type": "wpilib._wpilib.Field2d"}, {"name": "name", "type": "str"}], "tooltip": "Get or create a field object.\n\n:returns: Field object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d", "FUNC": "getObject"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myField2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFieldObject2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.FieldObject2d", "args": [{"name": "field2d", "type": "wpilib._wpilib.Field2d"}], "tooltip": "Get the robot object.\n\n:returns: Field object for robot", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d", "FUNC": "getRobotObject"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myField2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "field2d", "type": "wpilib._wpilib.Field2d"}], "tooltip": "Get the robot pose.\n\n:returns: 2D pose", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d", "FUNC": "getRobotPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myField2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "field2d", "type": "wpilib._wpilib.Field2d"}, {"name": "builder", "type": "ntcore._ntcore.NTSendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myField2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNTSendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "field2d", "type": "wpilib._wpilib.Field2d"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Set the robot pose from a Pose object.\n\n:param pose: 2D pose", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d", "FUNC": "setRobotPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myField2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "field2d", "type": "wpilib._wpilib.Field2d"}, {"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Set the robot pose from x, y, and rotation.\n\n:param x: X location\n:param y: Y location\n:param rotation: rotation", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d", "FUNC": "setRobotPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myField2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myField2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Field2d", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFieldObject2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.FieldObject2d", "args": [{"name": "field2d", "type": "wpilib.Field2d"}, {"name": "name", "type": "str"}], "tooltip": "Get or create a field object.\n\n:returns: Field object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d", "FUNC": "getObject"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myField2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFieldObject2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.FieldObject2d", "args": [{"name": "field2d", "type": "wpilib.Field2d"}], "tooltip": "Get the robot object.\n\n:returns: Field object for robot", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d", "FUNC": "getRobotObject"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myField2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "field2d", "type": "wpilib.Field2d"}], "tooltip": "Get the robot pose.\n\n:returns: 2D pose", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d", "FUNC": "getRobotPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myField2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "field2d", "type": "wpilib.Field2d"}, {"name": "builder", "type": "ntcore.NTSendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myField2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNTSendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "field2d", "type": "wpilib.Field2d"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Set the robot pose from a Pose object.\n\n:param pose: 2D pose", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d", "FUNC": "setRobotPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myField2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "field2d", "type": "wpilib.Field2d"}, {"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Set the robot pose from x, y, and rotation.\n\n:param x: X location\n:param y: Y location\n:param rotation: rotation", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Field2d", "FUNC": "setRobotPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myField2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.FieldObject2d.ts b/src/blocks/generated/class_wpilib.FieldObject2d.ts
index bcae2208..d5c3d088 100644
--- a/src/blocks/generated/class_wpilib.FieldObject2d.ts
+++ b/src/blocks/generated/class_wpilib.FieldObject2d.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "fieldObject2d", "type": "wpilib._wpilib.FieldObject2d"}], "tooltip": "Get the pose.\n\n:returns: 2D pose, or 0,0,0 if unknown / does not exist", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.FieldObject2d", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFieldObject2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "fieldObject2d", "type": "wpilib._wpilib.FieldObject2d"}], "tooltip": "Get multiple poses.\n\n:returns: vector of 2D poses", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.FieldObject2d", "FUNC": "getPoses"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFieldObject2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "fieldObject2d", "type": "wpilib._wpilib.FieldObject2d"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Set the pose from a Pose object.\n\n:param pose: 2D pose", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.FieldObject2d", "FUNC": "setPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFieldObject2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "fieldObject2d", "type": "wpilib._wpilib.FieldObject2d"}, {"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Set the pose from x, y, and rotation.\n\n:param x: X location\n:param y: Y location\n:param rotation: rotation", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.FieldObject2d", "FUNC": "setPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFieldObject2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "fieldObject2d", "type": "wpilib._wpilib.FieldObject2d"}, {"name": "poses", "type": "List[wpimath.geometry._geometry.Pose2d]"}], "tooltip": "Set multiple poses from an array of Pose objects.\nThe total number of poses is limited to 85.\n\n:param poses: array of 2D poses", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.FieldObject2d", "FUNC": "setPoses"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFieldObject2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "fieldObject2d", "type": "wpilib._wpilib.FieldObject2d"}, {"name": "trajectory", "type": "wpimath._controls._controls.trajectory.Trajectory"}], "tooltip": "Sets poses from a trajectory.\n\n:param trajectory: The trajectory from which poses should be added.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.FieldObject2d", "FUNC": "setTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFieldObject2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "fieldObject2d", "type": "wpilib.FieldObject2d"}], "tooltip": "Get the pose.\n\n:returns: 2D pose, or 0,0,0 if unknown / does not exist", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.FieldObject2d", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFieldObject2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "fieldObject2d", "type": "wpilib.FieldObject2d"}], "tooltip": "Get multiple poses.\n\n:returns: vector of 2D poses", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.FieldObject2d", "FUNC": "getPoses"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFieldObject2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "fieldObject2d", "type": "wpilib.FieldObject2d"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Set the pose from a Pose object.\n\n:param pose: 2D pose", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.FieldObject2d", "FUNC": "setPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFieldObject2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "fieldObject2d", "type": "wpilib.FieldObject2d"}, {"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Set the pose from x, y, and rotation.\n\n:param x: X location\n:param y: Y location\n:param rotation: rotation", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.FieldObject2d", "FUNC": "setPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFieldObject2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "fieldObject2d", "type": "wpilib.FieldObject2d"}, {"name": "poses", "type": "List[wpimath.geometry._geometry.Pose2d]"}], "tooltip": "Set multiple poses from an array of Pose objects.\nThe total number of poses is limited to 85.\n\n:param poses: array of 2D poses", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.FieldObject2d", "FUNC": "setPoses"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFieldObject2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "fieldObject2d", "type": "wpilib.FieldObject2d"}, {"name": "trajectory", "type": "wpimath.trajectory.Trajectory"}], "tooltip": "Sets poses from a trajectory.\n\n:param trajectory: The trajectory from which poses should be added.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.FieldObject2d", "FUNC": "setTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFieldObject2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.I2C.ts b/src/blocks/generated/class_wpilib.I2C.ts
index 6a3d3ad4..60a45ebc 100644
--- a/src/blocks/generated/class_wpilib.I2C.ts
+++ b/src/blocks/generated/class_wpilib.I2C.ts
@@ -13,16 +13,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myI2C"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.I2C", "args": [{"name": "port", "type": "wpilib._wpilib.I2C.Port"}, {"name": "deviceAddress", "type": "int"}], "tooltip": "Constructor.\n\n:param port: The I2C port to which the device is connected.\n:param deviceAddress: The address of the device on the I2C bus.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib._wpilib.I2C"}], "tooltip": "Attempt to address a device on the I2C bus.\n\nThis allows you to figure out if there is a device on the I2C bus that\nresponds to the address specified in the constructor.\n\n:returns: Transfer Aborted... false for success, true for aborted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "addressOnly"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "i2C", "type": "wpilib._wpilib.I2C"}], "tooltip": "Returns I2C device address.\n\n:returns: I2C device address.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "getDeviceAddress"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.I2C.Port", "args": [{"name": "i2C", "type": "wpilib._wpilib.I2C"}], "tooltip": "Returns I2C port.\n\n:returns: I2C port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib._wpilib.I2C"}, {"name": "registerAddress", "type": "int"}, {"name": "data", "type": "Buffer"}], "tooltip": "Execute a read transaction with the device.\n\nRead bytes from a device.\nMost I2C devices will auto-increment the register pointer internally\nallowing you to read consecutive registers on a device in a single\ntransaction.\n\n:param registerAddress: The register to read first in the transaction.\n:param count: The number of bytes to read in the transaction.\n:param data: A pointer to the array of bytes to store the data\n read from the device.\n\n:returns: Transfer Aborted... false for success, true for aborted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "read"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib._wpilib.I2C"}, {"name": "buffer", "type": "Buffer"}], "tooltip": "Execute a read only transaction with the device.\n\nRead bytes from a device. This method does not write any data to prompt the\ndevice.\n\n:param buffer: A pointer to the array of bytes to store the data read from\n the device.\n:param count: The number of bytes to read in the transaction.\n\n:returns: Transfer Aborted... false for success, true for aborted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "readOnly"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib._wpilib.I2C"}, {"name": "dataToSend", "type": "Buffer"}, {"name": "dataReceived", "type": "Buffer"}], "tooltip": "Generic transaction.\n\nThis is a lower-level interface to the I2C hardware giving you more control\nover each transaction. If you intend to write multiple bytes in the same\ntransaction and do not plan to receive anything back, use writeBulk()\ninstead. Calling this with a receiveSize of 0 will result in an error.\n\n:param dataToSend: Buffer of data to send as part of the transaction.\n:param sendSize: Number of bytes to send as part of the transaction.\n:param dataReceived: Buffer to read data into.\n:param receiveSize: Number of bytes to read from the device.\n\n:returns: Transfer Aborted... false for success, true for aborted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "transaction"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib._wpilib.I2C"}, {"name": "registerAddress", "type": "int"}, {"name": "expected", "type": "Buffer"}], "tooltip": "Verify that a device's registers contain expected values.\n\nMost devices will have a set of registers that contain a known value that\ncan be used to identify them. This allows an I2C device driver to easily\nverify that the device contains the expected value.\n\n@pre The device must support and be configured to use register\nauto-increment.\n\n:param registerAddress: The base register to start reading from the device.\n:param count: The size of the field to be verified.\n:param expected: A buffer containing the values expected from the\n device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "verifySensor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib._wpilib.I2C"}, {"name": "registerAddress", "type": "int"}, {"name": "data", "type": "int"}], "tooltip": "Execute a write transaction with the device.\n\nWrite a single byte to a register on a device and wait until the\ntransaction is complete.\n\n:param registerAddress: The address of the register on the device to be\n written.\n:param data: The byte to write to the register on the device.\n\n:returns: Transfer Aborted... false for success, true for aborted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "write"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib._wpilib.I2C"}, {"name": "data", "type": "Buffer"}], "tooltip": "Execute a bulk write transaction with the device.\n\nWrite multiple bytes to a device and wait until the\ntransaction is complete.\n\n:param data: The data to write to the register on the device.\n:param count: The number of bytes to be written.\n\n:returns: Transfer Aborted... false for success, true for aborted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "writeBulk"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myI2C"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.I2C", "args": [{"name": "port", "type": "wpilib.I2C.Port"}, {"name": "deviceAddress", "type": "int"}], "tooltip": "Constructor.\n\n:param port: The I2C port to which the device is connected.\n:param deviceAddress: The address of the device on the I2C bus.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib.I2C"}], "tooltip": "Attempt to address a device on the I2C bus.\n\nThis allows you to figure out if there is a device on the I2C bus that\nresponds to the address specified in the constructor.\n\n:returns: Transfer Aborted... false for success, true for aborted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "addressOnly"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "i2C", "type": "wpilib.I2C"}], "tooltip": "Returns I2C device address.\n\n:returns: I2C device address.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "getDeviceAddress"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.I2C.Port", "args": [{"name": "i2C", "type": "wpilib.I2C"}], "tooltip": "Returns I2C port.\n\n:returns: I2C port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib.I2C"}, {"name": "registerAddress", "type": "int"}, {"name": "data", "type": "Buffer"}], "tooltip": "Execute a read transaction with the device.\n\nRead bytes from a device.\nMost I2C devices will auto-increment the register pointer internally\nallowing you to read consecutive registers on a device in a single\ntransaction.\n\n:param registerAddress: The register to read first in the transaction.\n:param count: The number of bytes to read in the transaction.\n:param data: A pointer to the array of bytes to store the data\n read from the device.\n\n:returns: Transfer Aborted... false for success, true for aborted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "read"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib.I2C"}, {"name": "buffer", "type": "Buffer"}], "tooltip": "Execute a read only transaction with the device.\n\nRead bytes from a device. This method does not write any data to prompt the\ndevice.\n\n:param buffer: A pointer to the array of bytes to store the data read from\n the device.\n:param count: The number of bytes to read in the transaction.\n\n:returns: Transfer Aborted... false for success, true for aborted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "readOnly"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib.I2C"}, {"name": "dataToSend", "type": "Buffer"}, {"name": "dataReceived", "type": "Buffer"}], "tooltip": "Generic transaction.\n\nThis is a lower-level interface to the I2C hardware giving you more control\nover each transaction. If you intend to write multiple bytes in the same\ntransaction and do not plan to receive anything back, use writeBulk()\ninstead. Calling this with a receiveSize of 0 will result in an error.\n\n:param dataToSend: Buffer of data to send as part of the transaction.\n:param sendSize: Number of bytes to send as part of the transaction.\n:param dataReceived: Buffer to read data into.\n:param receiveSize: Number of bytes to read from the device.\n\n:returns: Transfer Aborted... false for success, true for aborted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "transaction"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib.I2C"}, {"name": "registerAddress", "type": "int"}, {"name": "expected", "type": "Buffer"}], "tooltip": "Verify that a device's registers contain expected values.\n\nMost devices will have a set of registers that contain a known value that\ncan be used to identify them. This allows an I2C device driver to easily\nverify that the device contains the expected value.\n\n@pre The device must support and be configured to use register\nauto-increment.\n\n:param registerAddress: The base register to start reading from the device.\n:param count: The size of the field to be verified.\n:param expected: A buffer containing the values expected from the\n device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "verifySensor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib.I2C"}, {"name": "registerAddress", "type": "int"}, {"name": "data", "type": "int"}], "tooltip": "Execute a write transaction with the device.\n\nWrite a single byte to a register on a device and wait until the\ntransaction is complete.\n\n:param registerAddress: The address of the register on the device to be\n written.\n:param data: The byte to write to the register on the device.\n\n:returns: Transfer Aborted... false for success, true for aborted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "write"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "i2C", "type": "wpilib.I2C"}, {"name": "data", "type": "Buffer"}], "tooltip": "Execute a bulk write transaction with the device.\n\nWrite multiple bytes to a device and wait until the\ntransaction is complete.\n\n:param data: The data to write to the register on the device.\n:param count: The number of bytes to be written.\n\n:returns: Transfer Aborted... false for success, true for aborted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.I2C", "FUNC": "writeBulk"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2C"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.I2C.Port", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.I2C.Port", "ENUM_VALUE": "kMXP"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.I2C.Port", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.I2C.Port", "ENUM_VALUE": "kOnboard"}},
];
diff --git a/src/blocks/generated/class_wpilib.IterativeRobotBase.ts b/src/blocks/generated/class_wpilib.IterativeRobotBase.ts
index bde3697c..8bcaf7a8 100644
--- a/src/blocks/generated/class_wpilib.IterativeRobotBase.ts
+++ b/src/blocks/generated/class_wpilib.IterativeRobotBase.ts
@@ -11,42 +11,42 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 36 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myIterativeRobotBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.IterativeRobotBase", "args": [{"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Constructor for IterativeRobotBase.\n\n:param period: Period.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Exit code for autonomous mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits autonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for autonomous mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters autonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for autonomous mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in\nautonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Exit code for disabled mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits disabled mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for disabled mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time\nthe robot enters disabled mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for disabled mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in disabled\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Code that needs to know the DS state should go here.\n\nUsers should override this method for initialization that needs to occur\nafter the DS is connected, such as needing the alliance information.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "driverStationConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}, {"name": "testLW", "type": "bool"}], "tooltip": "Sets whether LiveWindow operation is enabled during test mode.\n\n:param testLW: True to enable, false to disable. Defaults to false.\n @throws if called in test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "enableLiveWindowInTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Ends the main loop in StartCompetition().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "endCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[bool, bool, bool]", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "More efficient way to determine what state the robot is in.\n\n:returns: booleans representing enabled, isautonomous, istest\n\n.. versionadded:: 2019.2.1\n\n.. note:: This function only exists in RobotPy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "getControlState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Gets time period between calls to Periodic() functions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRuntimeType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.RuntimeType", "args": [], "tooltip": "Get the current runtime type.\n\n:returns: Current runtime type.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "getRuntimeType"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode.\n\n:returns: True if the robot is currently operating Autonomously as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomous"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode and enabled.\n\n:returns: True if the robot us currently operating Autonomously while enabled\n as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomousEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently disabled.\n\n:returns: True if the Robot is currently disabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently enabled.\n\n:returns: True if the Robot is currently enabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Whether LiveWindow operation is enabled during test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "isLiveWindowEnabledInTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myIterativeRobotBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.IterativeRobotBase", "args": [{"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Constructor for IterativeRobotBase.\n\n:param period: Period.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Exit code for autonomous mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits autonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for autonomous mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters autonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for autonomous mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in\nautonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Exit code for disabled mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits disabled mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for disabled mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time\nthe robot enters disabled mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for disabled mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in disabled\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Code that needs to know the DS state should go here.\n\nUsers should override this method for initialization that needs to occur\nafter the DS is connected, such as needing the alliance information.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "driverStationConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}, {"name": "testLW", "type": "bool"}], "tooltip": "Sets whether LiveWindow operation is enabled during test mode.\n\n:param testLW: True to enable, false to disable. Defaults to false.\n @throws if called in test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "enableLiveWindowInTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Ends the main loop in StartCompetition().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "endCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[bool, bool, bool]", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "More efficient way to determine what state the robot is in.\n\n:returns: booleans representing enabled, isautonomous, istest\n\n.. versionadded:: 2019.2.1\n\n.. note:: This function only exists in RobotPy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "getControlState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Gets time period between calls to Periodic() functions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRuntimeType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.RuntimeType", "args": [], "tooltip": "Get the current runtime type.\n\n:returns: Current runtime type.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "getRuntimeType"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode.\n\n:returns: True if the robot is currently operating Autonomously as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomous"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode and enabled.\n\n:returns: True if the robot us currently operating Autonomously while enabled\n as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomousEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently disabled.\n\n:returns: True if the Robot is currently disabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently enabled.\n\n:returns: True if the Robot is currently enabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Whether LiveWindow operation is enabled during test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "isLiveWindowEnabledInTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Get if the robot is real.\n\n:returns: If the robot is running in the real world.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "isReal"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Get if the robot is a simulation.\n\n:returns: If the robot is running in simulation.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "isSimulation"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Operator Control mode.\n\n:returns: True if the robot is currently operating in Tele-Op mode as\n determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Operator Control mode and enabled.\n\n:returns: True if the robot is currently operating in Tele-Op mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Test mode.\n\n:returns: True if the robot is currently running in Test mode as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Test mode and enabled.\n\n:returns: True if the robot is currently operating in Test mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTestEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Operator Control mode.\n\n:returns: True if the robot is currently operating in Tele-Op mode as\n determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Operator Control mode and enabled.\n\n:returns: True if the robot is currently operating in Tele-Op mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Test mode.\n\n:returns: True if the robot is currently running in Test mode as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Test mode and enabled.\n\n:returns: True if the robot is currently operating in Test mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTestEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "object", "args": [{"name": "robot_cls", "type": "object"}], "tooltip": "Starting point for the application", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "main"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Prints list of epochs added so far and their times.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "printWatchdogEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Robot-wide initialization code should go here.\n\nUsers should override this method for default Robot-wide initialization\nwhich will be called when the robot is first powered on. It will be called\nexactly one time.\n\nNote: This method is functionally identical to the class constructor so\nthat should be used instead.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "robotInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for all modes should go here.\n\nThis function is called each time a new packet is received from the driver\nstation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "robotPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enables or disables flushing NetworkTables every loop iteration.\nBy default, this is enabled.\n\n:deprecated: Deprecated without replacement.\n\n:param enabled: True to enable, false to disable", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "setNetworkTablesFlushEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Start the main robot code. This function will be called once and should not\nexit until signalled by EndCompetition()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "startCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Exit code for teleop mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits teleop mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for teleop mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters teleop mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for teleop mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in teleop\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Exit code for test mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for test mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for test mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in test\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Prints list of epochs added so far and their times.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "printWatchdogEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Robot-wide initialization code should go here.\n\nUsers should override this method for default Robot-wide initialization\nwhich will be called when the robot is first powered on. It will be called\nexactly one time.\n\nNote: This method is functionally identical to the class constructor so\nthat should be used instead.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "robotInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for all modes should go here.\n\nThis function is called each time a new packet is received from the driver\nstation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "robotPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enables or disables flushing NetworkTables every loop iteration.\nBy default, this is enabled.\n\n:deprecated: Deprecated without replacement.\n\n:param enabled: True to enable, false to disable", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "setNetworkTablesFlushEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Start the main robot code. This function will be called once and should not\nexit until signalled by EndCompetition()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "startCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Exit code for teleop mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits teleop mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for teleop mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters teleop mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for teleop mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in teleop\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Exit code for test mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for test mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for test mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in test\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Jaguar.ts b/src/blocks/generated/class_wpilib.Jaguar.ts
index b8dd513a..3a45d5a0 100644
--- a/src/blocks/generated/class_wpilib.Jaguar.ts
+++ b/src/blocks/generated/class_wpilib.Jaguar.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJaguar"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Jaguar", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Jaguar connected via PWM.\n\n:param channel: The PWM channel that the Jaguar is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Jaguar"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJaguar"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Jaguar", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Jaguar connected via PWM.\n\n:param channel: The PWM channel that the Jaguar is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Jaguar"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Jaguar", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Joystick.ts b/src/blocks/generated/class_wpilib.Joystick.ts
index ddb5dcc2..ae2bda15 100644
--- a/src/blocks/generated/class_wpilib.Joystick.ts
+++ b/src/blocks/generated/class_wpilib.Joystick.ts
@@ -21,63 +21,63 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.Joystick", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "VAR": "kDefaultXChannel"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.Joystick", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "VAR": "kDefaultYChannel"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.Joystick", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "VAR": "kDefaultZChannel"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystick"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Joystick", "args": [{"name": "port", "type": "int"}], "tooltip": "Construct an instance of a joystick.\n\nThe joystick index is the USB port on the Driver Station.\n\n:param port: The port on the Driver Station that the joystick is plugged\n into (0-5).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "pov", "type": "int"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param pov: index of the POV to read (starting at 0). Defaults to 0.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the center (not pressed) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the center of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 180 degree angle (down)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 180 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDown"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 225 degree angle (down\nleft) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 225 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 135 degree angle (right\ndown) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 135 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 270 degree angle (left)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 270 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 90 degree angle (right)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 90 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 0 degree angle (up) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 0 degree angle of a POV on\n the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 315 degree angle (left\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 315 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 45 degree angle (right\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 45 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is greater\nthan threshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value above which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is greater than\n the provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisGreaterThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is less than\nthreshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value below which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is less than the\n provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisLessThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around this button's digital signal.\n\n:param button: the button index\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the button's digital signal attached\n to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of axes for the HID.\n\n:returns: the number of axis for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the axis type of a joystick axis.\n\n:returns: the axis type of a joystick axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of buttons for the HID.\n\n:returns: the number of buttons on the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getDirectionDegrees"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Get the direction of the vector formed by the joystick and its origin.\n\n:returns: The direction of the vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getDirectionRadians"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Get the magnitude of the direction vector formed by the joystick's\ncurrent position relative to its origin.\n\n:returns: The magnitude of the direction vector", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getMagnitude"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the name of the HID.\n\n:returns: the name of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "pov", "type": "int"}], "tooltip": "Get the angle in degrees of a POV on the HID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(e.g. right is 90, upper-left is 315).\n\n:param pov: The index of the POV to read (starting at 0)\n\n:returns: the angle of the POV in degrees, or -1 if the POV is not pressed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of POVs for the HID.\n\n:returns: the number of POVs for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the port number of the HID.\n\n:returns: The port number of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis.\n\n:param axis: The axis to read, starting at 0.\n\n:returns: The value of the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Get the button value (starting at button 1).\n\nThe buttons are returned in a single 16 bit value with one bit representing\nthe state of each button. The appropriate button is returned as a boolean\nvalue.\n\nThis method returns true if the button is being held down at the time\nthat this method is being called.\n\n:param button: The button number to be read (starting at 1)\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was pressed since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from not pressed to held down\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you press the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was released since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from held down to not pressed\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you release the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Get the throttle value of the current joystick.\n\nThis depends on the mapping of the joystick connected to the current port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getThrottle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Get the channel currently associated with the throttle axis.\n\n:returns: The channel for the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getThrottleChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Read the state of the top button on the joystick.\n\nLook up which button has been assigned to the top and read its state.\n\n:returns: The state of the top button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Whether the top button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTopPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Whether the top button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTopReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Read the state of the trigger on the joystick.\n\nLook up which button has been assigned to the trigger and read its state.\n\n:returns: The state of the trigger.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Whether the trigger was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTriggerPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Whether the trigger was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTriggerReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Get the twist value of the current joystick.\n\nThis depends on the mapping of the joystick connected to the current port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTwist"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Get the channel currently associated with the twist axis.\n\n:returns: The channel for the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTwistChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHIDType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.interfaces._interfaces.GenericHID.HIDType", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the type of the HID.\n\n:returns: the type of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Get the X value of the current joystick.\n\nThis depends on the mapping of the joystick connected to the current port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Get the channel currently associated with the X axis.\n\n:returns: The channel for the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getXChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Get the Y value of the current joystick.\n\nThis depends on the mapping of the joystick connected to the current port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Get the channel currently associated with the Y axis.\n\n:returns: The channel for the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getYChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Get the Z value of the current joystick.\n\nThis depends on the mapping of the joystick connected to the current port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Get the channel currently associated with the Z axis.\n\n:returns: The channel for the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getZChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get if the HID is connected.\n\n:returns: true if the HID is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "outputNumber", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set a single HID output value for the HID.\n\n:param outputNumber: The index of the output to set (1-32)\n:param value: The value to set the output to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "value", "type": "int"}], "tooltip": "Set all output values for the HID.\n\n:param value: The 32 bit output value (1 bit for each output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.RumbleType"}, {"name": "value", "type": "float"}], "tooltip": "Set the rumble output for the HID.\n\nThe DS currently supports 2 rumble values, left rumble and right rumble.\n\n:param type: Which rumble value to set\n:param value: The normalized value (0 to 1) to set the rumble to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}, {"name": "channel", "type": "int"}], "tooltip": "Set the channel associated with the throttle axis.\n\n:param channel: The channel to set the axis to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "setThrottleChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}, {"name": "channel", "type": "int"}], "tooltip": "Set the channel associated with the twist axis.\n\n:param channel: The channel to set the axis to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "setTwistChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}, {"name": "channel", "type": "int"}], "tooltip": "Set the channel associated with the X axis.\n\n:param channel: The channel to set the axis to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "setXChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}, {"name": "channel", "type": "int"}], "tooltip": "Set the channel associated with the Y axis.\n\n:param channel: The channel to set the axis to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "setYChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}, {"name": "channel", "type": "int"}], "tooltip": "Set the channel associated with the Z axis.\n\n:param channel: The channel to set the axis to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "setZChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the top button's digital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the top button's digital signal\n attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "top"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the trigger button's digital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the trigger button's digital signal\n attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "trigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystick"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Joystick", "args": [{"name": "port", "type": "int"}], "tooltip": "Construct an instance of a joystick.\n\nThe joystick index is the USB port on the Driver Station.\n\n:param port: The port on the Driver Station that the joystick is plugged\n into (0-5).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "pov", "type": "int"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param pov: index of the POV to read (starting at 0). Defaults to 0.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the center (not pressed) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the center of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 180 degree angle (down)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 180 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDown"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 225 degree angle (down\nleft) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 225 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 135 degree angle (right\ndown) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 135 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 270 degree angle (left)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 270 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 90 degree angle (right)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 90 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 0 degree angle (up) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 0 degree angle of a POV on\n the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 315 degree angle (left\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 315 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 45 degree angle (right\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 45 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is greater\nthan threshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value above which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is greater than\n the provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisGreaterThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is less than\nthreshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value below which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is less than the\n provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisLessThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around this button's digital signal.\n\n:param button: the button index\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the button's digital signal attached\n to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of axes for the HID.\n\n:returns: the number of axis for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the axis type of a joystick axis.\n\n:returns: the axis type of a joystick axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of buttons for the HID.\n\n:returns: the number of buttons on the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getDirectionDegrees"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Get the direction of the vector formed by the joystick and its origin.\n\n:returns: The direction of the vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getDirectionRadians"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Get the magnitude of the direction vector formed by the joystick's\ncurrent position relative to its origin.\n\n:returns: The magnitude of the direction vector", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getMagnitude"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the name of the HID.\n\n:returns: the name of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "pov", "type": "int"}], "tooltip": "Get the angle in degrees of a POV on the HID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(e.g. right is 90, upper-left is 315).\n\n:param pov: The index of the POV to read (starting at 0)\n\n:returns: the angle of the POV in degrees, or -1 if the POV is not pressed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of POVs for the HID.\n\n:returns: the number of POVs for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the port number of the HID.\n\n:returns: The port number of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis.\n\n:param axis: The axis to read, starting at 0.\n\n:returns: The value of the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Get the button value (starting at button 1).\n\nThe buttons are returned in a single 16 bit value with one bit representing\nthe state of each button. The appropriate button is returned as a boolean\nvalue.\n\nThis method returns true if the button is being held down at the time\nthat this method is being called.\n\n:param button: The button number to be read (starting at 1)\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was pressed since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from not pressed to held down\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you press the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was released since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from held down to not pressed\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you release the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Get the throttle value of the current joystick.\n\nThis depends on the mapping of the joystick connected to the current port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getThrottle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Get the channel currently associated with the throttle axis.\n\n:returns: The channel for the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getThrottleChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Read the state of the top button on the joystick.\n\nLook up which button has been assigned to the top and read its state.\n\n:returns: The state of the top button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Whether the top button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTopPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Whether the top button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTopReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Read the state of the trigger on the joystick.\n\nLook up which button has been assigned to the trigger and read its state.\n\n:returns: The state of the trigger.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Whether the trigger was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTriggerPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Whether the trigger was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTriggerReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Get the twist value of the current joystick.\n\nThis depends on the mapping of the joystick connected to the current port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTwist"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Get the channel currently associated with the twist axis.\n\n:returns: The channel for the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getTwistChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHIDType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.interfaces.GenericHID.HIDType", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the type of the HID.\n\n:returns: the type of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Get the X value of the current joystick.\n\nThis depends on the mapping of the joystick connected to the current port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Get the channel currently associated with the X axis.\n\n:returns: The channel for the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getXChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Get the Y value of the current joystick.\n\nThis depends on the mapping of the joystick connected to the current port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Get the channel currently associated with the Y axis.\n\n:returns: The channel for the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getYChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Get the Z value of the current joystick.\n\nThis depends on the mapping of the joystick connected to the current port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Get the channel currently associated with the Z axis.\n\n:returns: The channel for the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "getZChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get if the HID is connected.\n\n:returns: true if the HID is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "outputNumber", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set a single HID output value for the HID.\n\n:param outputNumber: The index of the output to set (1-32)\n:param value: The value to set the output to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "value", "type": "int"}], "tooltip": "Set all output values for the HID.\n\n:param value: The 32 bit output value (1 bit for each output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.RumbleType"}, {"name": "value", "type": "float"}], "tooltip": "Set the rumble output for the HID.\n\nThe DS currently supports 2 rumble values, left rumble and right rumble.\n\n:param type: Which rumble value to set\n:param value: The normalized value (0 to 1) to set the rumble to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystick", "type": "wpilib.Joystick"}, {"name": "channel", "type": "int"}], "tooltip": "Set the channel associated with the throttle axis.\n\n:param channel: The channel to set the axis to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "setThrottleChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystick", "type": "wpilib.Joystick"}, {"name": "channel", "type": "int"}], "tooltip": "Set the channel associated with the twist axis.\n\n:param channel: The channel to set the axis to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "setTwistChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystick", "type": "wpilib.Joystick"}, {"name": "channel", "type": "int"}], "tooltip": "Set the channel associated with the X axis.\n\n:param channel: The channel to set the axis to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "setXChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystick", "type": "wpilib.Joystick"}, {"name": "channel", "type": "int"}], "tooltip": "Set the channel associated with the Y axis.\n\n:param channel: The channel to set the axis to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "setYChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystick", "type": "wpilib.Joystick"}, {"name": "channel", "type": "int"}], "tooltip": "Set the channel associated with the Z axis.\n\n:param channel: The channel to set the axis to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "setZChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "joystick", "type": "wpilib.Joystick"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the top button's digital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the top button's digital signal\n attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "top"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "joystick", "type": "wpilib.Joystick"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the trigger button's digital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the trigger button's digital signal\n attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Joystick", "FUNC": "trigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Joystick.AxisType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Joystick.AxisType", "ENUM_VALUE": "kThrottleAxis"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Joystick.AxisType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Joystick.AxisType", "ENUM_VALUE": "kTwistAxis"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Joystick.AxisType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Joystick.AxisType", "ENUM_VALUE": "kXAxis"}},
diff --git a/src/blocks/generated/class_wpilib.LEDPattern.LEDReader.ts b/src/blocks/generated/class_wpilib.LEDPattern.LEDReader.ts
index b55768dd..5db731e6 100644
--- a/src/blocks/generated/class_wpilib.LEDPattern.LEDReader.ts
+++ b/src/blocks/generated/class_wpilib.LEDPattern.LEDReader.ts
@@ -11,8 +11,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 2 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDReader"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.LEDPattern.LEDReader", "args": [{"name": "impl", "type": "Callable[[int], wpilib._wpilib.AddressableLED.LEDData]"}, {"name": "size", "type": "int"}], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern.LEDReader"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "lEDReader", "type": "wpilib._wpilib.LEDPattern.LEDReader"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern.LEDReader", "FUNC": "size"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDReader"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDReader"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.LEDPattern.LEDReader", "args": [{"name": "impl", "type": "Callable[[int], wpilib._wpilib.AddressableLED.LEDData]"}, {"name": "size", "type": "int"}], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern.LEDReader"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "lEDReader", "type": "wpilib.LEDPattern.LEDReader"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern.LEDReader", "FUNC": "size"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDReader"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.LEDPattern.ts b/src/blocks/generated/class_wpilib.LEDPattern.ts
index a7a870ad..f36fa8f8 100644
--- a/src/blocks/generated/class_wpilib.LEDPattern.ts
+++ b/src/blocks/generated/class_wpilib.LEDPattern.ts
@@ -13,29 +13,29 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 25 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "impl", "type": "Callable[[wpilib._wpilib.LEDPattern.LEDReader, Callable[[int, wpilib._wpilib.Color], None]], None]"}], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor], None]], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "reader", "type": "wpilib._wpilib.LEDPattern.LEDReader"}, {"name": "writer", "type": "Callable[[int, wpilib._wpilib.Color], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "applyTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDReader"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor], None]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "data", "type": "List[wpilib._wpilib.AddressableLED.LEDData]"}, {"name": "writer", "type": "Callable[[int, wpilib._wpilib.Color], None]"}], "tooltip": "Writes the pattern to an LED buffer. Dynamic animations should be called\nperiodically (such as with a command or with a periodic method) to refresh\nthe buffer over time.\n\nThis method is intentionally designed to use separate objects for reading\nand writing data. By splitting them up, we can easily modify the behavior\nof some base pattern to make it scroll, blink, or breathe by intercepting\nthe data writes to transform their behavior to whatever we like.\n\n:param data: the current data of the LED strip\n:param writer: data writer for setting new LED colors on the LED strip", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "applyTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor], None]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "data", "type": "List[wpilib._wpilib.AddressableLED.LEDData]"}], "tooltip": "Writes the pattern to an LED buffer. Dynamic animations should be called\nperiodically (such as with a command or with a periodic method) to refresh\nthe buffer over time.\n\nThis method is intentionally designed to use separate objects for reading\nand writing data. By splitting them up, we can easily modify the behavior\nof some base pattern to make it scroll, blink, or breathe by intercepting\nthe data writes to transform their behavior to whatever we like.\n\n:param data: the current data of the LED strip", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "applyTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDData]"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "relativeBrightness", "type": "float"}], "tooltip": "Creates a pattern that plays this one, but at a different brightness.\nBrightness multipliers are applied per-channel in the RGB space; no HSL or\nHSV conversions are applied. Multipliers are also uncapped, which may\nresult in the original colors washing out and appearing less saturated or\neven just a bright white.\n\nThis method is predominantly intended for dimming LEDs to avoid\npainfully bright or distracting patterns from playing (apologies to the\n2024 NE Greater Boston field staff).\n\nFor example, dimming can be done simply by adding a call to\n`atBrightness` at the end of a pattern:\n\n::\n\n // Solid red, but at 50% brightness\n frc::LEDPattern::Solid(frc::Color::kRed).AtBrightness(0.5);\n \n // Solid white, but at only 10% (i.e. ~0.5V)\n frc::LEDPattern::Solid(frc:Color::kWhite).AtBrightness(0.1);\n\n:param relativeBrightness: the multiplier to apply to all channels to modify\n brightness\n\n:returns: the input pattern, displayed at", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "atBrightness"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "other", "type": "wpilib._wpilib.LEDPattern"}], "tooltip": "Creates a pattern that displays outputs as a combination of this pattern\nand another. Color values are calculated as the average color of both\npatterns; if both patterns set the same LED to the same color, then it is\nset to that color, but if one pattern sets to one color and the other\npattern sets it to off, then it will show the color of the first pattern\nbut at approximately half brightness. This is different from {@link\nLEDPattern::OverlayOn(const LEDPattern&)}, which will show the base pattern\nat full brightness if the overlay is set to off at that position.\n\n:param other: the pattern to blend with\n\n:returns: the blended pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "blend"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "onTime", "type": "wpimath.units.seconds"}, {"name": "offTime", "type": "wpimath.units.seconds"}], "tooltip": "Creates a pattern that switches between playing this pattern and turning\nthe entire LED strip off.\n\n:param onTime: how long the pattern should play for, per cycle\n:param offTime: how long the pattern should be turned off for, per cycle\n\n:returns: the blinking pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "blink"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "onTime", "type": "wpimath.units.seconds"}], "tooltip": "Like {@link LEDPattern::Blink(units::second_t)}, but where the\n\"off\" time is exactly equal to the \"on\" time.\n\n:param onTime: how long the pattern should play for (and be turned off for),\n per cycle\n\n:returns: the blinking pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "blink"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Creates a pattern that brightens and dims this one over time. Brightness\nfollows a sinusoidal pattern.\n\n:param period: how fast the breathing pattern should complete a single cycle\n\n:returns: the breathing pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "breathe"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "type", "type": "wpilib._wpilib.LEDPattern.GradientType"}, {"name": "colors", "type": "List[wpilib._wpilib.Color]"}], "tooltip": "Creates a pattern that displays a non-animated gradient of colors across\nthe entire length of the LED strip. Colors are evenly distributed along the\nfull length of the LED strip. The gradient type is configured with the\n``type`` parameter, allowing the gradient to be either continuous (no\nseams, good for scrolling effects) or discontinuous (a clear seam is\nvisible, but the gradient applies to the full length of the LED strip\nwithout needing to use some space for wrapping).\n\n:param type: the type of gradient (continuous or discontinuous)\n:param colors: the colors to display in the gradient\n\n:returns: a motionless gradient pattern", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "gradient"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGradientType"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "indexMapper", "type": "Callable[[int, int], int]"}], "tooltip": "Creates a pattern with remapped indices.\n\n:param indexMapper: the index mapper\n\n:returns: the mapped pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "mapIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "mask", "type": "wpilib._wpilib.LEDPattern"}], "tooltip": "Similar to {@link LEDPattern::Blend(const LEDPattern&)}, but performs a\nbitwise mask on each color channel rather than averaging the colors for\neach LED. This can be helpful for displaying only a portion of the base\npattern by applying a mask that sets the desired area to white, and all\nother areas to black. However, it can also be used to display only certain\ncolor channels or hues; for example, masking with {@code\nLEDPattern.color(Color.kRed)} will turn off the green and blue channels on\nthe output pattern, leaving only the red LEDs to be illuminated.\n\n:param mask: the mask to apply\n\n:returns: the masked pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "mask"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.LEDPattern", "args": [], "tooltip": "A pattern that turns off all LEDs.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "off"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "offset", "type": "int"}], "tooltip": "Creates a pattern that displays this one, but offset by a certain number of\nLEDs. The offset pattern will wrap around, if necessary.\n\n:param offset: how many LEDs to offset by\n\n:returns: the offset pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "offsetBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "base", "type": "wpilib._wpilib.LEDPattern"}], "tooltip": "Creates a pattern that plays this pattern overlaid on another. Anywhere\nthis pattern sets an LED to off (or {@link frc::Color::kBlack}), the base\npattern will be displayed instead.\n\n:param base: the base pattern to overlay on top of\n\n:returns: the combined overlay pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "overlayOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "progressFunction", "type": "Callable[[], float]"}], "tooltip": "Creates a pattern that works as a mask layer for {@link\nLEDPattern::Mask(const LEDPattern&)} that illuminates only the portion of\nthe LED strip corresponding with some progress. The mask pattern will start\nfrom the base and set LEDs to white at a proportion equal to the progress\nreturned by the function. Some usages for this could be for displaying\nprogress of a flywheel to its target velocity, progress of a complex\nautonomous sequence, or the height of an elevator.\n\nFor example, creating a mask for displaying a red-to-blue gradient,\nstarting from the red end, based on where an elevator is in its range of\ntravel.\n\n::\n\n frc::LEDPattern basePattern =\n frc::LEDPattern::Gradient(frc::Color::kRed, frc::Color::kBlue);\n frc::LEDPattern progressPattern =\n basePattern.Mask(frc::LEDPattern::ProgressMaskLayer([&]() {\n return elevator.GetHeight() / elevator.MaxHeight();\n });\n\n:param progressFunction: the function to call to determine the progress.\n This should return values in the range [0, 1]; any values outside that\n range will be clamped.\n\n:returns: the mask pattern", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "progressMaskLayer"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "saturation", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Creates an LED pattern that displays a rainbow across the color wheel. The\nrainbow pattern will stretch across the entire length of the LED strip.\n\n:param saturation: the saturation of the HSV colors, in [0, 255]\n:param value: the value of the HSV colors, in [0, 255]\n\n:returns: the rainbow pattern", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "rainbow"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}], "tooltip": "Creates a pattern that displays this one in reverse. Scrolling patterns\nwill scroll in the opposite direction (but at the same speed). It will\ntreat the end of an LED strip as the start, and the start of the strip as\nthe end. This can be useful for making ping-pong patterns that travel from\none end of an LED strip to the other, then reverse direction and move back\nto the start. This can also be useful when working with LED strips\nconnected in a serpentine pattern (where the start of one strip is\nconnected to the end of the previous one).\n\n:returns: the reverse pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "reversed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}, {"name": "ledSpacing", "type": "wpimath.units.meters"}], "tooltip": "Creates a pattern that plays this one scrolling up an LED strip. A negative\nvelocity makes the pattern play in reverse.\n\nFor example, scrolling a pattern at 4 inches per second along an LED\nstrip with 60 LEDs per meter:\n\n::\n\n // LEDs per meter, a known value taken from the spec sheet of our\n particular LED strip units::meter_t LED_SPACING = units::meter_t{1 /60.0};\n \n frc::LEDPattern rainbow = frc::LEDPattern::Rainbow();\n frc::LEDPattern scrollingRainbow =\n rainbow.ScrollAtAbsoluteSpeed(units::feet_per_second_t{1 / 3.0},\n LED_SPACING);\n\nNote that this pattern will scroll *faster* if applied to a less\ndense LED strip (such as 30 LEDs per meter), or *slower* if applied to\na denser LED strip (such as 120 or 144 LEDs per meter).\n\n:param velocity: how fast the pattern should move along a physical LED strip\n:param ledSpacing: the distance between adjacent LEDs on the physical LED\n strip\n\n:returns: the scrolling pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "scrollAtAbsoluteSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "velocity", "type": "wpimath.units.hertz"}], "tooltip": "Creates a pattern that plays this one scrolling up the buffer. The velocity\ncontrols how fast the pattern returns back to its original position, and is\nin terms of the length of the LED strip; scrolling across a segment that is\n10 LEDs long will travel twice as fast as on a segment that's only 5 LEDs\nlong (assuming equal LED density on both segments).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "scrollAtRelativeSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "color", "type": "wpilib._wpilib.Color"}], "tooltip": "Creates a pattern that displays a single static color along the entire\nlength of the LED strip.\n\n:param color: the color to display\n\n:returns: the pattern", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "solid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "steps", "type": "List[tuple[float, wpilib._wpilib.Color]]"}], "tooltip": "Display a set of colors in steps across the length of the LED strip. No\ninterpolation is done between colors. Colors are specified by the first LED\non the strip to show that color. The last color in the map will be\ndisplayed all the way to the end of the strip. LEDs positioned before the\nfirst specified step will be turned off (you can think of this as if\nthere's a 0 -> black step by default).\n\n:param steps: a map of progress to the color to start displaying at that\n position along the LED strip\n\n:returns: a motionless step pattern", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "steps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib._wpilib.LEDPattern"}, {"name": "signal", "type": "Callable[[], bool]"}], "tooltip": "Creates a pattern that blinks this one on and off in sync with a true/false\nsignal. The pattern will play while the signal outputs ``true``, and\nwill turn off while the signal outputs\n``false``.\n\n:param signal: the signal to synchronize with\n\n:returns: the blinking pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "synchronizedBlink"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.LEDPattern", "args": [{"name": "impl", "type": "Callable[[wpilib._wpilib.LEDPattern.LEDReader, Callable[[int, wpilib._wpilib.Color], None]], None]"}], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "reader", "type": "wpilib.LEDPattern.LEDReader"}, {"name": "writer", "type": "Callable[[int, wpilib._wpilib.Color], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "applyTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDReader"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "data", "type": "List[wpilib._wpilib.AddressableLED.LEDData]"}, {"name": "writer", "type": "Callable[[int, wpilib._wpilib.Color], None]"}], "tooltip": "Writes the pattern to an LED buffer. Dynamic animations should be called\nperiodically (such as with a command or with a periodic method) to refresh\nthe buffer over time.\n\nThis method is intentionally designed to use separate objects for reading\nand writing data. By splitting them up, we can easily modify the behavior\nof some base pattern to make it scroll, blink, or breathe by intercepting\nthe data writes to transform their behavior to whatever we like.\n\n:param data: the current data of the LED strip\n:param writer: data writer for setting new LED colors on the LED strip", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "applyTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "data", "type": "List[wpilib._wpilib.AddressableLED.LEDData]"}], "tooltip": "Writes the pattern to an LED buffer. Dynamic animations should be called\nperiodically (such as with a command or with a periodic method) to refresh\nthe buffer over time.\n\nThis method is intentionally designed to use separate objects for reading\nand writing data. By splitting them up, we can easily modify the behavior\nof some base pattern to make it scroll, blink, or breathe by intercepting\nthe data writes to transform their behavior to whatever we like.\n\n:param data: the current data of the LED strip", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "applyTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "relativeBrightness", "type": "float"}], "tooltip": "Creates a pattern that plays this one, but at a different brightness.\nBrightness multipliers are applied per-channel in the RGB space; no HSL or\nHSV conversions are applied. Multipliers are also uncapped, which may\nresult in the original colors washing out and appearing less saturated or\neven just a bright white.\n\nThis method is predominantly intended for dimming LEDs to avoid\npainfully bright or distracting patterns from playing (apologies to the\n2024 NE Greater Boston field staff).\n\nFor example, dimming can be done simply by adding a call to\n`atBrightness` at the end of a pattern:\n\n::\n\n // Solid red, but at 50% brightness\n frc::LEDPattern::Solid(frc::Color::kRed).AtBrightness(0.5);\n \n // Solid white, but at only 10% (i.e. ~0.5V)\n frc::LEDPattern::Solid(frc:Color::kWhite).AtBrightness(0.1);\n\n:param relativeBrightness: the multiplier to apply to all channels to modify\n brightness\n\n:returns: the input pattern, displayed at", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "atBrightness"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "other", "type": "wpilib.LEDPattern"}], "tooltip": "Creates a pattern that displays outputs as a combination of this pattern\nand another. Color values are calculated as the average color of both\npatterns; if both patterns set the same LED to the same color, then it is\nset to that color, but if one pattern sets to one color and the other\npattern sets it to off, then it will show the color of the first pattern\nbut at approximately half brightness. This is different from {@link\nLEDPattern::OverlayOn(const LEDPattern&)}, which will show the base pattern\nat full brightness if the overlay is set to off at that position.\n\n:param other: the pattern to blend with\n\n:returns: the blended pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "blend"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "onTime", "type": "wpimath.units.seconds"}, {"name": "offTime", "type": "wpimath.units.seconds"}], "tooltip": "Creates a pattern that switches between playing this pattern and turning\nthe entire LED strip off.\n\n:param onTime: how long the pattern should play for, per cycle\n:param offTime: how long the pattern should be turned off for, per cycle\n\n:returns: the blinking pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "blink"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "onTime", "type": "wpimath.units.seconds"}], "tooltip": "Like {@link LEDPattern::Blink(units::second_t)}, but where the\n\"off\" time is exactly equal to the \"on\" time.\n\n:param onTime: how long the pattern should play for (and be turned off for),\n per cycle\n\n:returns: the blinking pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "blink"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Creates a pattern that brightens and dims this one over time. Brightness\nfollows a sinusoidal pattern.\n\n:param period: how fast the breathing pattern should complete a single cycle\n\n:returns: the breathing pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "breathe"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.LEDPattern", "args": [{"name": "type", "type": "wpilib.LEDPattern.GradientType"}, {"name": "colors", "type": "List[wpilib._wpilib.Color]"}], "tooltip": "Creates a pattern that displays a non-animated gradient of colors across\nthe entire length of the LED strip. Colors are evenly distributed along the\nfull length of the LED strip. The gradient type is configured with the\n``type`` parameter, allowing the gradient to be either continuous (no\nseams, good for scrolling effects) or discontinuous (a clear seam is\nvisible, but the gradient applies to the full length of the LED strip\nwithout needing to use some space for wrapping).\n\n:param type: the type of gradient (continuous or discontinuous)\n:param colors: the colors to display in the gradient\n\n:returns: a motionless gradient pattern", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "gradient"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGradientType"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "indexMapper", "type": "Callable[[int, int], int]"}], "tooltip": "Creates a pattern with remapped indices.\n\n:param indexMapper: the index mapper\n\n:returns: the mapped pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "mapIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "mask", "type": "wpilib.LEDPattern"}], "tooltip": "Similar to {@link LEDPattern::Blend(const LEDPattern&)}, but performs a\nbitwise mask on each color channel rather than averaging the colors for\neach LED. This can be helpful for displaying only a portion of the base\npattern by applying a mask that sets the desired area to white, and all\nother areas to black. However, it can also be used to display only certain\ncolor channels or hues; for example, masking with {@code\nLEDPattern.color(Color.kRed)} will turn off the green and blue channels on\nthe output pattern, leaving only the red LEDs to be illuminated.\n\n:param mask: the mask to apply\n\n:returns: the masked pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "mask"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.LEDPattern", "args": [], "tooltip": "A pattern that turns off all LEDs.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "off"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "offset", "type": "int"}], "tooltip": "Creates a pattern that displays this one, but offset by a certain number of\nLEDs. The offset pattern will wrap around, if necessary.\n\n:param offset: how many LEDs to offset by\n\n:returns: the offset pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "offsetBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "base", "type": "wpilib.LEDPattern"}], "tooltip": "Creates a pattern that plays this pattern overlaid on another. Anywhere\nthis pattern sets an LED to off (or {@link frc::Color::kBlack}), the base\npattern will be displayed instead.\n\n:param base: the base pattern to overlay on top of\n\n:returns: the combined overlay pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "overlayOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.LEDPattern", "args": [{"name": "progressFunction", "type": "Callable[[], float]"}], "tooltip": "Creates a pattern that works as a mask layer for {@link\nLEDPattern::Mask(const LEDPattern&)} that illuminates only the portion of\nthe LED strip corresponding with some progress. The mask pattern will start\nfrom the base and set LEDs to white at a proportion equal to the progress\nreturned by the function. Some usages for this could be for displaying\nprogress of a flywheel to its target velocity, progress of a complex\nautonomous sequence, or the height of an elevator.\n\nFor example, creating a mask for displaying a red-to-blue gradient,\nstarting from the red end, based on where an elevator is in its range of\ntravel.\n\n::\n\n frc::LEDPattern basePattern =\n frc::LEDPattern::Gradient(frc::Color::kRed, frc::Color::kBlue);\n frc::LEDPattern progressPattern =\n basePattern.Mask(frc::LEDPattern::ProgressMaskLayer([&]() {\n return elevator.GetHeight() / elevator.MaxHeight();\n });\n\n:param progressFunction: the function to call to determine the progress.\n This should return values in the range [0, 1]; any values outside that\n range will be clamped.\n\n:returns: the mask pattern", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "progressMaskLayer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.LEDPattern", "args": [{"name": "saturation", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Creates an LED pattern that displays a rainbow across the color wheel. The\nrainbow pattern will stretch across the entire length of the LED strip.\n\n:param saturation: the saturation of the HSV colors, in [0, 255]\n:param value: the value of the HSV colors, in [0, 255]\n\n:returns: the rainbow pattern", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "rainbow"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}], "tooltip": "Creates a pattern that displays this one in reverse. Scrolling patterns\nwill scroll in the opposite direction (but at the same speed). It will\ntreat the end of an LED strip as the start, and the start of the strip as\nthe end. This can be useful for making ping-pong patterns that travel from\none end of an LED strip to the other, then reverse direction and move back\nto the start. This can also be useful when working with LED strips\nconnected in a serpentine pattern (where the start of one strip is\nconnected to the end of the previous one).\n\n:returns: the reverse pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "reversed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}, {"name": "ledSpacing", "type": "wpimath.units.meters"}], "tooltip": "Creates a pattern that plays this one scrolling up an LED strip. A negative\nvelocity makes the pattern play in reverse.\n\nFor example, scrolling a pattern at 4 inches per second along an LED\nstrip with 60 LEDs per meter:\n\n::\n\n // LEDs per meter, a known value taken from the spec sheet of our\n particular LED strip units::meter_t LED_SPACING = units::meter_t{1 /60.0};\n \n frc::LEDPattern rainbow = frc::LEDPattern::Rainbow();\n frc::LEDPattern scrollingRainbow =\n rainbow.ScrollAtAbsoluteSpeed(units::feet_per_second_t{1 / 3.0},\n LED_SPACING);\n\nNote that this pattern will scroll *faster* if applied to a less\ndense LED strip (such as 30 LEDs per meter), or *slower* if applied to\na denser LED strip (such as 120 or 144 LEDs per meter).\n\n:param velocity: how fast the pattern should move along a physical LED strip\n:param ledSpacing: the distance between adjacent LEDs on the physical LED\n strip\n\n:returns: the scrolling pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "scrollAtAbsoluteSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "velocity", "type": "wpimath.units.hertz"}], "tooltip": "Creates a pattern that plays this one scrolling up the buffer. The velocity\ncontrols how fast the pattern returns back to its original position, and is\nin terms of the length of the LED strip; scrolling across a segment that is\n10 LEDs long will travel twice as fast as on a segment that's only 5 LEDs\nlong (assuming equal LED density on both segments).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "scrollAtRelativeSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.LEDPattern", "args": [{"name": "color", "type": "wpilib.Color"}], "tooltip": "Creates a pattern that displays a single static color along the entire\nlength of the LED strip.\n\n:param color: the color to display\n\n:returns: the pattern", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "solid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.LEDPattern", "args": [{"name": "steps", "type": "List[tuple[float, wpilib._wpilib.Color]]"}], "tooltip": "Display a set of colors in steps across the length of the LED strip. No\ninterpolation is done between colors. Colors are specified by the first LED\non the strip to show that color. The last color in the map will be\ndisplayed all the way to the end of the strip. LEDs positioned before the\nfirst specified step will be turned off (you can think of this as if\nthere's a 0 -> black step by default).\n\n:param steps: a map of progress to the color to start displaying at that\n position along the LED strip\n\n:returns: a motionless step pattern", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "steps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLEDPattern"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.LEDPattern", "args": [{"name": "lEDPattern", "type": "wpilib.LEDPattern"}, {"name": "signal", "type": "Callable[[], bool]"}], "tooltip": "Creates a pattern that blinks this one on and off in sync with a true/false\nsignal. The pattern will play while the signal outputs ``true``, and\nwill turn off while the signal outputs\n``false``.\n\n:param signal: the signal to synchronize with\n\n:returns: the blinking pattern", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.LEDPattern", "FUNC": "synchronizedBlink"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLEDPattern"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.LEDPattern.GradientType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.LEDPattern.GradientType", "ENUM_VALUE": "kContinuous"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.LEDPattern.GradientType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.LEDPattern.GradientType", "ENUM_VALUE": "kDiscontinuous"}},
];
diff --git a/src/blocks/generated/class_wpilib.LiveWindow.ts b/src/blocks/generated/class_wpilib.LiveWindow.ts
index f7861674..1deddb6e 100644
--- a/src/blocks/generated/class_wpilib.LiveWindow.ts
+++ b/src/blocks/generated/class_wpilib.LiveWindow.ts
@@ -12,13 +12,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Disable ALL telemetry.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "disableAllTelemetry"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "component", "type": "wpiutil._wpiutil.Sendable"}], "tooltip": "Disable telemetry for a single component.\n\n:param component: sendable", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "disableTelemetry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "component", "type": "wpiutil.Sendable"}], "tooltip": "Disable telemetry for a single component.\n\n:param component: sendable", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "disableTelemetry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Enable ALL telemetry.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "enableAllTelemetry"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "component", "type": "wpiutil._wpiutil.Sendable"}], "tooltip": "Enable telemetry for a single component.\n\n:param component: sendable", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "enableTelemetry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "component", "type": "wpiutil.Sendable"}], "tooltip": "Enable telemetry for a single component.\n\n:param component: sendable", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "enableTelemetry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Returns true if LiveWindow is enabled.\n\n:returns: True if LiveWindow is enabled.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "isEnabled"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "func", "type": "Callable[[], None]"}], "tooltip": "Sets function to be called when LiveWindow is disabled.\n\n:param func: function (or nullptr for none)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "setDisabledCallback"}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "func", "type": "Callable[[], None]"}], "tooltip": "Sets function to be called when LiveWindow is disabled.\n\n:param func: function (or nullptr for none)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "setDisabledCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "enabled", "type": "bool"}], "tooltip": "Change the enabled status of LiveWindow.\n\nIf it changes to enabled, start livewindow running otherwise stop it", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "setEnabled"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "func", "type": "Callable[[], None]"}], "tooltip": "Sets function to be called when LiveWindow is enabled.\n\n:param func: function (or nullptr for none)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "setEnabledCallback"}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "func", "type": "Callable[[], None]"}], "tooltip": "Sets function to be called when LiveWindow is enabled.\n\n:param func: function (or nullptr for none)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "setEnabledCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Tell all the sensors to update (send) their values.\n\nActuators are handled through callbacks on their value changing from the\nSmartDashboard widgets.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.LiveWindow", "FUNC": "updateValues"}},
];
diff --git a/src/blocks/generated/class_wpilib.Mechanism2d.ts b/src/blocks/generated/class_wpilib.Mechanism2d.ts
index da1ad658..ed927bf2 100644
--- a/src/blocks/generated/class_wpilib.Mechanism2d.ts
+++ b/src/blocks/generated/class_wpilib.Mechanism2d.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMechanism2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Mechanism2d", "args": [{"name": "width", "type": "float"}, {"name": "height", "type": "float"}, {"name": "backgroundColor", "type": "wpilib._wpilib.Color8Bit"}], "tooltip": "Create a new Mechanism2d with the given dimensions and background color.\n\nThe dimensions represent the canvas that all the nodes are drawn on. The\ndefault color is dark blue.\n\n:param width: the width\n:param height: the height\n:param backgroundColor: the background color", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Mechanism2d"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMechanismRoot2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.MechanismRoot2d", "args": [{"name": "mechanism2d", "type": "wpilib._wpilib.Mechanism2d"}, {"name": "name", "type": "str"}, {"name": "x", "type": "float"}, {"name": "y", "type": "float"}], "tooltip": "Get or create a root in this Mechanism2d with the given name and\nposition.\n\nIf a root with the given name already exists, the given x and y\ncoordinates are not used.\n\n:param name: the root name\n:param x: the root x coordinate\n:param y: the root y coordinate\n\n:returns: a new root object, or the existing one with the given name.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Mechanism2d", "FUNC": "getRoot"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanism2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanism2d", "type": "wpilib._wpilib.Mechanism2d"}, {"name": "builder", "type": "ntcore._ntcore.NTSendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Mechanism2d", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanism2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNTSendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanism2d", "type": "wpilib._wpilib.Mechanism2d"}, {"name": "color", "type": "wpilib._wpilib.Color8Bit"}], "tooltip": "Set the Mechanism2d background color.\n\n:param color: the new background color", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Mechanism2d", "FUNC": "setBackgroundColor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanism2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMechanism2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Mechanism2d", "args": [{"name": "width", "type": "float"}, {"name": "height", "type": "float"}, {"name": "backgroundColor", "type": "wpilib.Color8Bit"}], "tooltip": "Create a new Mechanism2d with the given dimensions and background color.\n\nThe dimensions represent the canvas that all the nodes are drawn on. The\ndefault color is dark blue.\n\n:param width: the width\n:param height: the height\n:param backgroundColor: the background color", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Mechanism2d"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMechanismRoot2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.MechanismRoot2d", "args": [{"name": "mechanism2d", "type": "wpilib.Mechanism2d"}, {"name": "name", "type": "str"}, {"name": "x", "type": "float"}, {"name": "y", "type": "float"}], "tooltip": "Get or create a root in this Mechanism2d with the given name and\nposition.\n\nIf a root with the given name already exists, the given x and y\ncoordinates are not used.\n\n:param name: the root name\n:param x: the root x coordinate\n:param y: the root y coordinate\n\n:returns: a new root object, or the existing one with the given name.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Mechanism2d", "FUNC": "getRoot"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanism2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanism2d", "type": "wpilib.Mechanism2d"}, {"name": "builder", "type": "ntcore.NTSendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Mechanism2d", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanism2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNTSendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanism2d", "type": "wpilib.Mechanism2d"}, {"name": "color", "type": "wpilib.Color8Bit"}], "tooltip": "Set the Mechanism2d background color.\n\n:param color: the new background color", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Mechanism2d", "FUNC": "setBackgroundColor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanism2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.MechanismLigament2d.ts b/src/blocks/generated/class_wpilib.MechanismLigament2d.ts
index 7f64c1a0..3f47b49b 100644
--- a/src/blocks/generated/class_wpilib.MechanismLigament2d.ts
+++ b/src/blocks/generated/class_wpilib.MechanismLigament2d.ts
@@ -11,16 +11,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 10 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMechanismLigament2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.MechanismLigament2d", "args": [{"name": "mechanismObject2d", "type": "wpilib._wpilib.MechanismObject2d"}, {"name": "name", "type": "str"}, {"name": "length", "type": "float"}, {"name": "angle", "type": "wpimath.units.degrees"}, {"name": "lineWidth", "type": "float"}, {"name": "color", "type": "wpilib._wpilib.Color8Bit"}], "tooltip": "Append a ligament node", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismObject2d", "FUNC": "appendLigament"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismObject2d"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "mechanismLigament2d", "type": "wpilib._wpilib.MechanismLigament2d"}], "tooltip": "Get the ligament's angle relative to its parent.\n\n:returns: the angle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor8Bit"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.Color8Bit", "args": [{"name": "mechanismLigament2d", "type": "wpilib._wpilib.MechanismLigament2d"}], "tooltip": "Get the ligament color.\n\n:returns: the color of the line", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "getColor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "mechanismLigament2d", "type": "wpilib._wpilib.MechanismLigament2d"}], "tooltip": "Get the ligament length.\n\n:returns: the line length", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "getLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "mechanismLigament2d", "type": "wpilib._wpilib.MechanismLigament2d"}], "tooltip": "Get the line thickness.\n\n:returns: the line thickness", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "getLineWeight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "mechanismObject2d", "type": "wpilib._wpilib.MechanismObject2d"}], "tooltip": "Retrieve the object's name.\n\n:returns: the object's name relative to its parent.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismObject2d", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismObject2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanismLigament2d", "type": "wpilib._wpilib.MechanismLigament2d"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Set the ligament's angle relative to its parent.\n\n:param angle: the angle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "setAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanismLigament2d", "type": "wpilib._wpilib.MechanismLigament2d"}, {"name": "color", "type": "wpilib._wpilib.Color8Bit"}], "tooltip": "Set the ligament color.\n\n:param color: the color of the line", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "setColor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanismLigament2d", "type": "wpilib._wpilib.MechanismLigament2d"}, {"name": "length", "type": "float"}], "tooltip": "Set the ligament's length.\n\n:param length: the line length", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "setLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanismLigament2d", "type": "wpilib._wpilib.MechanismLigament2d"}, {"name": "lineWidth", "type": "float"}], "tooltip": "Set the line thickness.\n\n:param lineWidth: the line thickness", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "setLineWeight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMechanismLigament2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.MechanismLigament2d", "args": [{"name": "mechanismObject2d", "type": "wpilib.MechanismObject2d"}, {"name": "name", "type": "str"}, {"name": "length", "type": "float"}, {"name": "angle", "type": "wpimath.units.degrees"}, {"name": "lineWidth", "type": "float"}, {"name": "color", "type": "wpilib.Color8Bit"}], "tooltip": "Append a ligament node", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismObject2d", "FUNC": "appendLigament"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismObject2d"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "mechanismLigament2d", "type": "wpilib.MechanismLigament2d"}], "tooltip": "Get the ligament's angle relative to its parent.\n\n:returns: the angle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myColor8Bit"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.Color8Bit", "args": [{"name": "mechanismLigament2d", "type": "wpilib.MechanismLigament2d"}], "tooltip": "Get the ligament color.\n\n:returns: the color of the line", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "getColor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "mechanismLigament2d", "type": "wpilib.MechanismLigament2d"}], "tooltip": "Get the ligament length.\n\n:returns: the line length", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "getLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "mechanismLigament2d", "type": "wpilib.MechanismLigament2d"}], "tooltip": "Get the line thickness.\n\n:returns: the line thickness", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "getLineWeight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "mechanismObject2d", "type": "wpilib.MechanismObject2d"}], "tooltip": "Retrieve the object's name.\n\n:returns: the object's name relative to its parent.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismObject2d", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismObject2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanismLigament2d", "type": "wpilib.MechanismLigament2d"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Set the ligament's angle relative to its parent.\n\n:param angle: the angle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "setAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanismLigament2d", "type": "wpilib.MechanismLigament2d"}, {"name": "color", "type": "wpilib.Color8Bit"}], "tooltip": "Set the ligament color.\n\n:param color: the color of the line", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "setColor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanismLigament2d", "type": "wpilib.MechanismLigament2d"}, {"name": "length", "type": "float"}], "tooltip": "Set the ligament's length.\n\n:param length: the line length", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "setLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanismLigament2d", "type": "wpilib.MechanismLigament2d"}, {"name": "lineWidth", "type": "float"}], "tooltip": "Set the line thickness.\n\n:param lineWidth: the line thickness", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismLigament2d", "FUNC": "setLineWeight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismLigament2d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.MechanismObject2d.ts b/src/blocks/generated/class_wpilib.MechanismObject2d.ts
index 10be8570..2be26b2a 100644
--- a/src/blocks/generated/class_wpilib.MechanismObject2d.ts
+++ b/src/blocks/generated/class_wpilib.MechanismObject2d.ts
@@ -11,8 +11,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 2 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMechanismLigament2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.MechanismLigament2d", "args": [{"name": "mechanismObject2d", "type": "wpilib._wpilib.MechanismObject2d"}, {"name": "name", "type": "str"}, {"name": "length", "type": "float"}, {"name": "angle", "type": "wpimath.units.degrees"}, {"name": "lineWidth", "type": "float"}, {"name": "color", "type": "wpilib._wpilib.Color8Bit"}], "tooltip": "Append a ligament node", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismObject2d", "FUNC": "appendLigament"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismObject2d"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "mechanismObject2d", "type": "wpilib._wpilib.MechanismObject2d"}], "tooltip": "Retrieve the object's name.\n\n:returns: the object's name relative to its parent.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismObject2d", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismObject2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMechanismLigament2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.MechanismLigament2d", "args": [{"name": "mechanismObject2d", "type": "wpilib.MechanismObject2d"}, {"name": "name", "type": "str"}, {"name": "length", "type": "float"}, {"name": "angle", "type": "wpimath.units.degrees"}, {"name": "lineWidth", "type": "float"}, {"name": "color", "type": "wpilib.Color8Bit"}], "tooltip": "Append a ligament node", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismObject2d", "FUNC": "appendLigament"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismObject2d"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "mechanismObject2d", "type": "wpilib.MechanismObject2d"}], "tooltip": "Retrieve the object's name.\n\n:returns: the object's name relative to its parent.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismObject2d", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismObject2d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.MechanismRoot2d.ts b/src/blocks/generated/class_wpilib.MechanismRoot2d.ts
index 894cf3b3..781e82c5 100644
--- a/src/blocks/generated/class_wpilib.MechanismRoot2d.ts
+++ b/src/blocks/generated/class_wpilib.MechanismRoot2d.ts
@@ -11,9 +11,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 3 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMechanismLigament2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.MechanismLigament2d", "args": [{"name": "mechanismRoot2d", "type": "wpilib._wpilib.MechanismRoot2d"}, {"name": "name", "type": "str"}, {"name": "length", "type": "float"}, {"name": "angle", "type": "wpimath.units.degrees"}, {"name": "lineWidth", "type": "float"}, {"name": "color", "type": "wpilib._wpilib.Color8Bit"}], "tooltip": "Append a ligament node", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismRoot2d", "FUNC": "appendLigament"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismRoot2d"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "mechanismRoot2d", "type": "wpilib._wpilib.MechanismRoot2d"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismRoot2d", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismRoot2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanismRoot2d", "type": "wpilib._wpilib.MechanismRoot2d"}, {"name": "x", "type": "float"}, {"name": "y", "type": "float"}], "tooltip": "Set the root's position.\n\n:param x: new x coordinate\n:param y: new y coordinate", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismRoot2d", "FUNC": "setPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismRoot2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMechanismLigament2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.MechanismLigament2d", "args": [{"name": "mechanismRoot2d", "type": "wpilib.MechanismRoot2d"}, {"name": "name", "type": "str"}, {"name": "length", "type": "float"}, {"name": "angle", "type": "wpimath.units.degrees"}, {"name": "lineWidth", "type": "float"}, {"name": "color", "type": "wpilib.Color8Bit"}], "tooltip": "Append a ligament node", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismRoot2d", "FUNC": "appendLigament"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismRoot2d"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myColor8Bit"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "mechanismRoot2d", "type": "wpilib.MechanismRoot2d"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismRoot2d", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismRoot2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mechanismRoot2d", "type": "wpilib.MechanismRoot2d"}, {"name": "x", "type": "float"}, {"name": "y", "type": "float"}], "tooltip": "Set the root's position.\n\n:param x: new x coordinate\n:param y: new y coordinate", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MechanismRoot2d", "FUNC": "setPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMechanismRoot2d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.MotorControllerGroup.ts b/src/blocks/generated/class_wpilib.MotorControllerGroup.ts
index cbedf260..6e2a38af 100644
--- a/src/blocks/generated/class_wpilib.MotorControllerGroup.ts
+++ b/src/blocks/generated/class_wpilib.MotorControllerGroup.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorControllerGroup"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.MotorControllerGroup", "args": [{"name": "args", "type": "tuple"}], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorControllerGroup", "type": "wpilib._wpilib.MotorControllerGroup"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "motorControllerGroup", "type": "wpilib._wpilib.MotorControllerGroup"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorControllerGroup", "type": "wpilib._wpilib.MotorControllerGroup"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorControllerGroup", "type": "wpilib._wpilib.MotorControllerGroup"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorControllerGroup", "type": "wpilib._wpilib.MotorControllerGroup"}, {"name": "speed", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorControllerGroup", "type": "wpilib._wpilib.MotorControllerGroup"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorControllerGroup", "type": "wpilib._wpilib.MotorControllerGroup"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorControllerGroup", "type": "wpilib._wpilib.MotorControllerGroup"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorControllerGroup"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.MotorControllerGroup", "args": [{"name": "args", "type": "tuple"}], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorControllerGroup", "type": "wpilib.MotorControllerGroup"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "motorControllerGroup", "type": "wpilib.MotorControllerGroup"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorControllerGroup", "type": "wpilib.MotorControllerGroup"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorControllerGroup", "type": "wpilib.MotorControllerGroup"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorControllerGroup", "type": "wpilib.MotorControllerGroup"}, {"name": "speed", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorControllerGroup", "type": "wpilib.MotorControllerGroup"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorControllerGroup", "type": "wpilib.MotorControllerGroup"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorControllerGroup", "type": "wpilib.MotorControllerGroup"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorControllerGroup", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorControllerGroup"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.MotorSafety.ts b/src/blocks/generated/class_wpilib.MotorSafety.ts
index b578b0ac..32787a52 100644
--- a/src/blocks/generated/class_wpilib.MotorSafety.ts
+++ b/src/blocks/generated/class_wpilib.MotorSafety.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorSafety"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.MotorSafety", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorSafety"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.MotorSafety", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Returns a description to print when an error occurs.\n\n:returns: Description to print when an error occurs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Called to stop the motor when the timeout expires.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Returns a description to print when an error occurs.\n\n:returns: Description to print when an error occurs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Called to stop the motor when the timeout expires.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.NidecBrushless.ts b/src/blocks/generated/class_wpilib.NidecBrushless.ts
index 410e3f16..3aca7c69 100644
--- a/src/blocks/generated/class_wpilib.NidecBrushless.ts
+++ b/src/blocks/generated/class_wpilib.NidecBrushless.ts
@@ -11,26 +11,26 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 20 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNidecBrushless"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.NidecBrushless", "args": [{"name": "pwmChannel", "type": "int"}, {"name": "dioChannel", "type": "int"}], "tooltip": "Constructor.\n\n:param pwmChannel: The PWM channel that the Nidec Brushless controller is\n attached to. 0-9 are on-board, 10-19 are on the MXP port.\n:param dioChannel: The DIO channel that the Nidec Brushless controller is\n attached to. 0-9 are on-board, 10-25 are on the MXP port.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNidecBrushless"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.NidecBrushless", "args": [{"name": "pwmChannel", "type": "int"}, {"name": "dioChannel", "type": "int"}], "tooltip": "Constructor.\n\n:param pwmChannel: The PWM channel that the Nidec Brushless controller is\n attached to. 0-9 are on-board, 10-19 are on the MXP port.\n:param dioChannel: The DIO channel that the Nidec Brushless controller is\n attached to. 0-9 are on-board, 10-25 are on the MXP port.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "nidecBrushless", "type": "wpilib._wpilib.NidecBrushless"}], "tooltip": "Disable the motor. The Enable() function must be called to re-enable the\nmotor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "nidecBrushless", "type": "wpilib._wpilib.NidecBrushless"}], "tooltip": "Re-enable the motor after Disable() has been called. The Set() function\nmust be called to set a new motor speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "enable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "nidecBrushless", "type": "wpilib._wpilib.NidecBrushless"}], "tooltip": "Get the recently set value of the PWM.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "nidecBrushless", "type": "wpilib._wpilib.NidecBrushless"}], "tooltip": "Gets the channel number associated with the object.\n\n:returns: The channel number.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "nidecBrushless", "type": "wpilib._wpilib.NidecBrushless"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "nidecBrushless", "type": "wpilib._wpilib.NidecBrushless"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "nidecBrushless", "type": "wpilib._wpilib.NidecBrushless"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "nidecBrushless", "type": "wpilib._wpilib.NidecBrushless"}, {"name": "speed", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param speed: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "nidecBrushless", "type": "wpilib._wpilib.NidecBrushless"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorController", "type": "wpilib.interfaces._interfaces.MotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the MotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "nidecBrushless", "type": "wpilib._wpilib.NidecBrushless"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "nidecBrushless", "type": "wpilib.NidecBrushless"}], "tooltip": "Disable the motor. The Enable() function must be called to re-enable the\nmotor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "nidecBrushless", "type": "wpilib.NidecBrushless"}], "tooltip": "Re-enable the motor after Disable() has been called. The Set() function\nmust be called to set a new motor speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "enable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "nidecBrushless", "type": "wpilib.NidecBrushless"}], "tooltip": "Get the recently set value of the PWM.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "nidecBrushless", "type": "wpilib.NidecBrushless"}], "tooltip": "Gets the channel number associated with the object.\n\n:returns: The channel number.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "nidecBrushless", "type": "wpilib.NidecBrushless"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "nidecBrushless", "type": "wpilib.NidecBrushless"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "nidecBrushless", "type": "wpilib.NidecBrushless"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "nidecBrushless", "type": "wpilib.NidecBrushless"}, {"name": "speed", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param speed: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "nidecBrushless", "type": "wpilib.NidecBrushless"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorController", "type": "wpilib.interfaces.MotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the MotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "nidecBrushless", "type": "wpilib.NidecBrushless"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.NidecBrushless", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNidecBrushless"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Notifier.ts b/src/blocks/generated/class_wpilib.Notifier.ts
index cce1e0c5..8cd3686f 100644
--- a/src/blocks/generated/class_wpilib.Notifier.ts
+++ b/src/blocks/generated/class_wpilib.Notifier.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNotifier"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Notifier", "args": [{"name": "handler", "type": "Callable[[], None]"}], "tooltip": "Create a Notifier for timer event notification.\n\n:param handler: The handler is called at the notification time which is set\n using StartSingle or StartPeriodic.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "notifier", "type": "wpilib._wpilib.Notifier"}, {"name": "handler", "type": "Callable[[], None]"}], "tooltip": "Change the handler function.\n\n:param handler: Handler", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier", "FUNC": "setCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifier"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNotifier"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Notifier", "args": [{"name": "handler", "type": "Callable[[], None]"}], "tooltip": "Create a Notifier for timer event notification.\n\n:param handler: The handler is called at the notification time which is set\n using StartSingle or StartPeriodic.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "notifier", "type": "wpilib.Notifier"}, {"name": "handler", "type": "Callable[[], None]"}], "tooltip": "Change the handler function.\n\n:param handler: Handler", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier", "FUNC": "setCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifier"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "realTime", "type": "bool"}, {"name": "priority", "type": "int"}], "tooltip": "Sets the HAL notifier thread priority.\n\nThe HAL notifier thread is responsible for managing the FPGA's notifier\ninterrupt and waking up user's Notifiers when it's their time to run.\nGiving the HAL notifier thread real-time priority helps ensure the user's\nreal-time Notifiers, if any, are notified to run in a timely manner.\n\n:param realTime: Set to true to set a real-time priority, false for standard\n priority.\n:param priority: Priority to set the thread to. For real-time, this is 1-99\n with 99 being highest. For non-real-time, this is forced to\n 0. See \"man 7 sched\" for more details.\n\n:returns: True on success.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier", "FUNC": "setHALThreadPriority"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "notifier", "type": "wpilib._wpilib.Notifier"}, {"name": "name", "type": "str"}], "tooltip": "Sets the name of the notifier. Used for debugging purposes only.\n\n:param name: Name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifier"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "notifier", "type": "wpilib._wpilib.Notifier"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Register for periodic event notification.\n\nA timer event is queued for periodic event notification. Each time the\ninterrupt occurs, the event will be immediately requeued for the same time\ninterval.\n\n:param period: Period to call the handler starting one period\n after the call to this method.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier", "FUNC": "startPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifier"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "notifier", "type": "wpilib._wpilib.Notifier"}, {"name": "delay", "type": "wpimath.units.seconds"}], "tooltip": "Register for single event notification.\n\nA timer event is queued for a single event after the specified delay.\n\n:param delay: Amount of time to wait before the handler is called.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier", "FUNC": "startSingle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifier"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "notifier", "type": "wpilib._wpilib.Notifier"}], "tooltip": "Stop timer events from occurring.\n\nStop any repeating timer events from occurring. This will also remove any\nsingle notification events from the queue.\n\nIf a timer-based call to the registered handler is in progress, this\nfunction will block until the handler call is complete.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier", "FUNC": "stop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifier"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "notifier", "type": "wpilib.Notifier"}, {"name": "name", "type": "str"}], "tooltip": "Sets the name of the notifier. Used for debugging purposes only.\n\n:param name: Name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifier"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "notifier", "type": "wpilib.Notifier"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Register for periodic event notification.\n\nA timer event is queued for periodic event notification. Each time the\ninterrupt occurs, the event will be immediately requeued for the same time\ninterval.\n\n:param period: Period to call the handler starting one period\n after the call to this method.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier", "FUNC": "startPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifier"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "notifier", "type": "wpilib.Notifier"}, {"name": "delay", "type": "wpimath.units.seconds"}], "tooltip": "Register for single event notification.\n\nA timer event is queued for a single event after the specified delay.\n\n:param delay: Amount of time to wait before the handler is called.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier", "FUNC": "startSingle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifier"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "notifier", "type": "wpilib.Notifier"}], "tooltip": "Stop timer events from occurring.\n\nStop any repeating timer events from occurring. This will also remove any\nsingle notification events from the queue.\n\nIf a timer-based call to the registered handler is in progress, this\nfunction will block until the handler call is complete.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Notifier", "FUNC": "stop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifier"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PS4Controller.Axis.ts b/src/blocks/generated/class_wpilib.PS4Controller.Axis.ts
index 35f91ba2..cb0fc846 100644
--- a/src/blocks/generated/class_wpilib.PS4Controller.Axis.ts
+++ b/src/blocks/generated/class_wpilib.PS4Controller.Axis.ts
@@ -19,7 +19,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PS4Controller.Axis", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller.Axis", "VAR": "kR2"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PS4Controller.Axis", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller.Axis", "VAR": "kRightX"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PS4Controller.Axis", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller.Axis", "VAR": "kRightY"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PS4Controller.Axis", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller.Axis"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PS4Controller.Axis", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller.Axis"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PS4Controller.Button.ts b/src/blocks/generated/class_wpilib.PS4Controller.Button.ts
index 8a626a3f..90e19eda 100644
--- a/src/blocks/generated/class_wpilib.PS4Controller.Button.ts
+++ b/src/blocks/generated/class_wpilib.PS4Controller.Button.ts
@@ -27,7 +27,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PS4Controller.Button", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller.Button", "VAR": "kSquare"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PS4Controller.Button", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller.Button", "VAR": "kTouchpad"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PS4Controller.Button", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller.Button", "VAR": "kTriangle"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myButton"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PS4Controller.Button", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller.Button"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myButton"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PS4Controller.Button", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller.Button"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PS4Controller.ts b/src/blocks/generated/class_wpilib.PS4Controller.ts
index 86091066..7112d519 100644
--- a/src/blocks/generated/class_wpilib.PS4Controller.ts
+++ b/src/blocks/generated/class_wpilib.PS4Controller.ts
@@ -11,103 +11,103 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 97 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPS4Controller"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PS4Controller", "args": [{"name": "port", "type": "int"}], "tooltip": "Construct an instance of a controller.\n\nThe controller index is the USB port on the Driver Station.\n\n:param port: The port on the Driver Station that the controller is plugged\n into (0-5).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the left trigger 1 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left trigger 1 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "L1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the left trigger 2 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left trigger 2 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "L2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the L3 (left stick) button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the L3 (left stick) button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "L3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "pov", "type": "int"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param pov: index of the POV to read (starting at 0). Defaults to 0.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the center (not pressed) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the center of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 180 degree angle (down)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 180 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDown"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 225 degree angle (down\nleft) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 225 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 135 degree angle (right\ndown) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 135 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 270 degree angle (left)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 270 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 90 degree angle (right)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 90 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 0 degree angle (up) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 0 degree angle of a POV on\n the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 315 degree angle (left\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 315 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 45 degree angle (right\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 45 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the PlayStation button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the PlayStation button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "PS"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the right trigger 1 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right trigger 1 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "R1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the right trigger 2 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right trigger 2 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "R2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the R3 (right stick) button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the R3 (right stick) button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "R3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is greater\nthan threshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value above which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is greater than\n the provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisGreaterThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is less than\nthreshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value below which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is less than the\n provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisLessThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around this button's digital signal.\n\n:param button: the button index\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the button's digital signal attached\n to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the circle button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the circle button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "circle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the cross button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the cross button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "cross"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of axes for the HID.\n\n:returns: the number of axis for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the axis type of a joystick axis.\n\n:returns: the axis type of a joystick axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of buttons for the HID.\n\n:returns: the number of buttons on the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the circle button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getCircleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the circle button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getCircleButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the circle button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getCircleButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the cross button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getCrossButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the cross button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getCrossButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the cross button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getCrossButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the left trigger 1 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the left trigger 1 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL1ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the left trigger 1 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL1ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Get the left trigger 2 axis value of the controller. Note that this axis\nis bound to the range of [0, 1] as opposed to the usual [-1, 1].\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the left trigger 2 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the left trigger 2 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL2ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the left trigger 2 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL2ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the L3 (left stick) button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the L3 (left stick) button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL3ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the L3 (left stick) button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL3ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Get the X axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Get the Y axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the name of the HID.\n\n:returns: the name of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the options button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getOptionsButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the options button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getOptionsButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the options button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getOptionsButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "pov", "type": "int"}], "tooltip": "Get the angle in degrees of a POV on the HID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(e.g. right is 90, upper-left is 315).\n\n:param pov: The index of the POV to read (starting at 0)\n\n:returns: the angle of the POV in degrees, or -1 if the POV is not pressed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of POVs for the HID.\n\n:returns: the number of POVs for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the PlayStation button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getPSButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the PlayStation button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getPSButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the PlayStation button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getPSButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the port number of the HID.\n\n:returns: The port number of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the right trigger 1 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the right trigger 1 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR1ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the right trigger 1 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR1ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Get the right trigger 2 axis value of the controller. Note that this axis\nis bound to the range of [0, 1] as opposed to the usual [-1, 1].\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the right trigger 2 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the right trigger 2 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR2ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the right trigger 2 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR2ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the R3 (right stick) button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the R3 (right stick) button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR3ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the R3 (right stick) button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR3ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis.\n\n:param axis: The axis to read, starting at 0.\n\n:returns: The value of the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Get the button value (starting at button 1).\n\nThe buttons are returned in a single 16 bit value with one bit representing\nthe state of each button. The appropriate button is returned as a boolean\nvalue.\n\nThis method returns true if the button is being held down at the time\nthat this method is being called.\n\n:param button: The button number to be read (starting at 1)\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was pressed since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from not pressed to held down\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you press the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was released since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from held down to not pressed\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you release the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Get the X axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Get the Y axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the share button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getShareButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the share button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getShareButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the share button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getShareButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the square button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getSquareButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the square button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getSquareButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the square button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getSquareButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the touchpad button on the controller.\n\n:deprecated: Use GetTouchpadButton instead. This function is deprecated for\n removal to make function names consistent to allow the HID classes to be\n automatically generated.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTouchpad"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the touchpad button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTouchpadButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the touchpad button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTouchpadButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the touchpad button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTouchpadButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the touchpad was pressed since the last check.\n\n:deprecated: Use GetTouchpadButtonPressed instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the touchpad was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTouchpadPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the touchpad was released since the last check.\n\n:deprecated: Use GetLeftBumperButton instead. This function is deprecated\n for removal to make function names consistent to allow the HID classes to\n be automatically generated.\n\n:returns: Whether the touchpad was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTouchpadReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Read the value of the triangle button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTriangleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the triangle button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTriangleButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Whether the triangle button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTriangleButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHIDType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.interfaces._interfaces.GenericHID.HIDType", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the type of the HID.\n\n:returns: the type of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get if the HID is connected.\n\n:returns: true if the HID is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the options button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the options button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "options"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "outputNumber", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set a single HID output value for the HID.\n\n:param outputNumber: The index of the output to set (1-32)\n:param value: The value to set the output to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "value", "type": "int"}], "tooltip": "Set all output values for the HID.\n\n:param value: The 32 bit output value (1 bit for each output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.RumbleType"}, {"name": "value", "type": "float"}], "tooltip": "Set the rumble output for the HID.\n\nThe DS currently supports 2 rumble values, left rumble and right rumble.\n\n:param type: Which rumble value to set\n:param value: The normalized value (0 to 1) to set the rumble to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the share button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the share button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "share"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the square button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the square button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "square"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the touchpad button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the touchpad button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "touchpad"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib._wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the triangle button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the triangle button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "triangle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPS4Controller"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PS4Controller", "args": [{"name": "port", "type": "int"}], "tooltip": "Construct an instance of a controller.\n\nThe controller index is the USB port on the Driver Station.\n\n:param port: The port on the Driver Station that the controller is plugged\n into (0-5).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the left trigger 1 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left trigger 1 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "L1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the left trigger 2 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left trigger 2 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "L2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the L3 (left stick) button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the L3 (left stick) button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "L3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "pov", "type": "int"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param pov: index of the POV to read (starting at 0). Defaults to 0.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the center (not pressed) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the center of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 180 degree angle (down)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 180 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDown"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 225 degree angle (down\nleft) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 225 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 135 degree angle (right\ndown) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 135 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 270 degree angle (left)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 270 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 90 degree angle (right)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 90 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 0 degree angle (up) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 0 degree angle of a POV on\n the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 315 degree angle (left\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 315 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 45 degree angle (right\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 45 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the PlayStation button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the PlayStation button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "PS"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the right trigger 1 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right trigger 1 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "R1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the right trigger 2 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right trigger 2 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "R2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the R3 (right stick) button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the R3 (right stick) button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "R3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is greater\nthan threshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value above which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is greater than\n the provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisGreaterThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is less than\nthreshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value below which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is less than the\n provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisLessThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around this button's digital signal.\n\n:param button: the button index\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the button's digital signal attached\n to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the circle button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the circle button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "circle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the cross button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the cross button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "cross"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of axes for the HID.\n\n:returns: the number of axis for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the axis type of a joystick axis.\n\n:returns: the axis type of a joystick axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of buttons for the HID.\n\n:returns: the number of buttons on the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the circle button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getCircleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the circle button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getCircleButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the circle button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getCircleButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the cross button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getCrossButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the cross button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getCrossButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the cross button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getCrossButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the left trigger 1 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the left trigger 1 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL1ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the left trigger 1 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL1ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Get the left trigger 2 axis value of the controller. Note that this axis\nis bound to the range of [0, 1] as opposed to the usual [-1, 1].\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the left trigger 2 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the left trigger 2 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL2ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the left trigger 2 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL2ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the L3 (left stick) button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the L3 (left stick) button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL3ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the L3 (left stick) button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getL3ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Get the X axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Get the Y axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the name of the HID.\n\n:returns: the name of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the options button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getOptionsButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the options button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getOptionsButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the options button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getOptionsButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "pov", "type": "int"}], "tooltip": "Get the angle in degrees of a POV on the HID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(e.g. right is 90, upper-left is 315).\n\n:param pov: The index of the POV to read (starting at 0)\n\n:returns: the angle of the POV in degrees, or -1 if the POV is not pressed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of POVs for the HID.\n\n:returns: the number of POVs for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the PlayStation button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getPSButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the PlayStation button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getPSButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the PlayStation button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getPSButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the port number of the HID.\n\n:returns: The port number of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the right trigger 1 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the right trigger 1 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR1ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the right trigger 1 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR1ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Get the right trigger 2 axis value of the controller. Note that this axis\nis bound to the range of [0, 1] as opposed to the usual [-1, 1].\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the right trigger 2 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the right trigger 2 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR2ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the right trigger 2 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR2ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the R3 (right stick) button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the R3 (right stick) button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR3ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the R3 (right stick) button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getR3ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis.\n\n:param axis: The axis to read, starting at 0.\n\n:returns: The value of the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Get the button value (starting at button 1).\n\nThe buttons are returned in a single 16 bit value with one bit representing\nthe state of each button. The appropriate button is returned as a boolean\nvalue.\n\nThis method returns true if the button is being held down at the time\nthat this method is being called.\n\n:param button: The button number to be read (starting at 1)\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was pressed since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from not pressed to held down\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you press the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was released since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from held down to not pressed\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you release the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Get the X axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Get the Y axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the share button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getShareButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the share button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getShareButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the share button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getShareButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the square button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getSquareButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the square button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getSquareButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the square button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getSquareButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the touchpad button on the controller.\n\n:deprecated: Use GetTouchpadButton instead. This function is deprecated for\n removal to make function names consistent to allow the HID classes to be\n automatically generated.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTouchpad"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the touchpad button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTouchpadButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the touchpad button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTouchpadButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the touchpad button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTouchpadButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the touchpad was pressed since the last check.\n\n:deprecated: Use GetTouchpadButtonPressed instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the touchpad was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTouchpadPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the touchpad was released since the last check.\n\n:deprecated: Use GetLeftBumperButton instead. This function is deprecated\n for removal to make function names consistent to allow the HID classes to\n be automatically generated.\n\n:returns: Whether the touchpad was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTouchpadReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Read the value of the triangle button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTriangleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the triangle button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTriangleButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}], "tooltip": "Whether the triangle button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "getTriangleButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHIDType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.interfaces.GenericHID.HIDType", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the type of the HID.\n\n:returns: the type of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get if the HID is connected.\n\n:returns: true if the HID is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the options button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the options button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "options"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "outputNumber", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set a single HID output value for the HID.\n\n:param outputNumber: The index of the output to set (1-32)\n:param value: The value to set the output to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "value", "type": "int"}], "tooltip": "Set all output values for the HID.\n\n:param value: The 32 bit output value (1 bit for each output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.RumbleType"}, {"name": "value", "type": "float"}], "tooltip": "Set the rumble output for the HID.\n\nThe DS currently supports 2 rumble values, left rumble and right rumble.\n\n:param type: Which rumble value to set\n:param value: The normalized value (0 to 1) to set the rumble to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the share button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the share button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "share"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the square button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the square button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "square"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the touchpad button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the touchpad button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "touchpad"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS4Controller", "type": "wpilib.PS4Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the triangle button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the triangle button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS4Controller", "FUNC": "triangle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PS5Controller.Axis.ts b/src/blocks/generated/class_wpilib.PS5Controller.Axis.ts
index 1a5a0dd6..9fc52de9 100644
--- a/src/blocks/generated/class_wpilib.PS5Controller.Axis.ts
+++ b/src/blocks/generated/class_wpilib.PS5Controller.Axis.ts
@@ -19,7 +19,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PS5Controller.Axis", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller.Axis", "VAR": "kR2"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PS5Controller.Axis", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller.Axis", "VAR": "kRightX"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PS5Controller.Axis", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller.Axis", "VAR": "kRightY"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PS5Controller.Axis", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller.Axis"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PS5Controller.Axis", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller.Axis"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PS5Controller.Button.ts b/src/blocks/generated/class_wpilib.PS5Controller.Button.ts
index cb1843f7..520c1bbb 100644
--- a/src/blocks/generated/class_wpilib.PS5Controller.Button.ts
+++ b/src/blocks/generated/class_wpilib.PS5Controller.Button.ts
@@ -27,7 +27,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PS5Controller.Button", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller.Button", "VAR": "kSquare"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PS5Controller.Button", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller.Button", "VAR": "kTouchpad"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PS5Controller.Button", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller.Button", "VAR": "kTriangle"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myButton"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PS5Controller.Button", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller.Button"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myButton"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PS5Controller.Button", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller.Button"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PS5Controller.ts b/src/blocks/generated/class_wpilib.PS5Controller.ts
index 429fcec4..81a33048 100644
--- a/src/blocks/generated/class_wpilib.PS5Controller.ts
+++ b/src/blocks/generated/class_wpilib.PS5Controller.ts
@@ -11,103 +11,103 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 97 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPS5Controller"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PS5Controller", "args": [{"name": "port", "type": "int"}], "tooltip": "Construct an instance of a controller.\n\nThe controller index is the USB port on the Driver Station.\n\n:param port: The port on the Driver Station that the controller is plugged\n into (0-5).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the left trigger 1 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left trigger 1 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "L1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the left trigger 2 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left trigger 2 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "L2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the L3 (left stick) button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the L3 (left stick) button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "L3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "pov", "type": "int"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param pov: index of the POV to read (starting at 0). Defaults to 0.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the center (not pressed) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the center of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 180 degree angle (down)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 180 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDown"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 225 degree angle (down\nleft) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 225 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 135 degree angle (right\ndown) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 135 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 270 degree angle (left)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 270 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 90 degree angle (right)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 90 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 0 degree angle (up) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 0 degree angle of a POV on\n the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 315 degree angle (left\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 315 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 45 degree angle (right\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 45 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the PlayStation button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the PlayStation button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "PS"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the right trigger 1 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right trigger 1 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "R1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the right trigger 2 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right trigger 2 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "R2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the R3 (right stick) button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the R3 (right stick) button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "R3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is greater\nthan threshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value above which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is greater than\n the provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisGreaterThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is less than\nthreshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value below which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is less than the\n provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisLessThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around this button's digital signal.\n\n:param button: the button index\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the button's digital signal attached\n to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the circle button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the circle button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "circle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the create button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the create button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "create"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the cross button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the cross button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "cross"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of axes for the HID.\n\n:returns: the number of axis for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the axis type of a joystick axis.\n\n:returns: the axis type of a joystick axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of buttons for the HID.\n\n:returns: the number of buttons on the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the circle button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCircleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the circle button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCircleButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the circle button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCircleButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the create button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCreateButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the create button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCreateButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the create button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCreateButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the cross button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCrossButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the cross button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCrossButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the cross button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCrossButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the left trigger 1 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the left trigger 1 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL1ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the left trigger 1 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL1ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Get the left trigger 2 axis value of the controller. Note that this axis\nis bound to the range of [0, 1] as opposed to the usual [-1, 1].\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the left trigger 2 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the left trigger 2 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL2ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the left trigger 2 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL2ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the L3 (left stick) button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the L3 (left stick) button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL3ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the L3 (left stick) button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL3ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Get the X axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Get the Y axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the name of the HID.\n\n:returns: the name of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the options button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getOptionsButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the options button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getOptionsButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the options button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getOptionsButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "pov", "type": "int"}], "tooltip": "Get the angle in degrees of a POV on the HID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(e.g. right is 90, upper-left is 315).\n\n:param pov: The index of the POV to read (starting at 0)\n\n:returns: the angle of the POV in degrees, or -1 if the POV is not pressed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of POVs for the HID.\n\n:returns: the number of POVs for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the PlayStation button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getPSButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the PlayStation button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getPSButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the PlayStation button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getPSButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the port number of the HID.\n\n:returns: The port number of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the right trigger 1 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the right trigger 1 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR1ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the right trigger 1 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR1ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Get the right trigger 2 axis value of the controller. Note that this axis\nis bound to the range of [0, 1] as opposed to the usual [-1, 1].\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the right trigger 2 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the right trigger 2 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR2ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the right trigger 2 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR2ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the R3 (right stick) button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the R3 (right stick) button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR3ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the R3 (right stick) button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR3ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis.\n\n:param axis: The axis to read, starting at 0.\n\n:returns: The value of the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Get the button value (starting at button 1).\n\nThe buttons are returned in a single 16 bit value with one bit representing\nthe state of each button. The appropriate button is returned as a boolean\nvalue.\n\nThis method returns true if the button is being held down at the time\nthat this method is being called.\n\n:param button: The button number to be read (starting at 1)\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was pressed since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from not pressed to held down\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you press the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was released since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from held down to not pressed\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you release the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Get the X axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Get the Y axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the square button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getSquareButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the square button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getSquareButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the square button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getSquareButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the touchpad button on the controller.\n\n:deprecated: Use GetTouchpadButton instead. This function is deprecated for\n removal to make function names consistent to allow the HID classes to be\n automatically generated.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTouchpad"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the touchpad button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTouchpadButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the touchpad button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTouchpadButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the touchpad button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTouchpadButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the touchpad was pressed since the last check.\n\n:deprecated: Use GetTouchpadButtonPressed instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the touchpad was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTouchpadPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the touchpad was released since the last check.\n\n:deprecated: Use GetLeftBumperButton instead. This function is deprecated\n for removal to make function names consistent to allow the HID classes to\n be automatically generated.\n\n:returns: Whether the touchpad was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTouchpadReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Read the value of the triangle button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTriangleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the triangle button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTriangleButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Whether the triangle button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTriangleButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHIDType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.interfaces._interfaces.GenericHID.HIDType", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the type of the HID.\n\n:returns: the type of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get if the HID is connected.\n\n:returns: true if the HID is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the options button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the options button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "options"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "outputNumber", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set a single HID output value for the HID.\n\n:param outputNumber: The index of the output to set (1-32)\n:param value: The value to set the output to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "value", "type": "int"}], "tooltip": "Set all output values for the HID.\n\n:param value: The 32 bit output value (1 bit for each output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.RumbleType"}, {"name": "value", "type": "float"}], "tooltip": "Set the rumble output for the HID.\n\nThe DS currently supports 2 rumble values, left rumble and right rumble.\n\n:param type: Which rumble value to set\n:param value: The normalized value (0 to 1) to set the rumble to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the square button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the square button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "square"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the touchpad button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the touchpad button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "touchpad"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib._wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the triangle button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the triangle button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "triangle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPS5Controller"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PS5Controller", "args": [{"name": "port", "type": "int"}], "tooltip": "Construct an instance of a controller.\n\nThe controller index is the USB port on the Driver Station.\n\n:param port: The port on the Driver Station that the controller is plugged\n into (0-5).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the left trigger 1 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left trigger 1 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "L1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the left trigger 2 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left trigger 2 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "L2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the L3 (left stick) button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the L3 (left stick) button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "L3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "pov", "type": "int"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param pov: index of the POV to read (starting at 0). Defaults to 0.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the center (not pressed) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the center of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 180 degree angle (down)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 180 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDown"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 225 degree angle (down\nleft) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 225 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 135 degree angle (right\ndown) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 135 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 270 degree angle (left)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 270 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 90 degree angle (right)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 90 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 0 degree angle (up) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 0 degree angle of a POV on\n the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 315 degree angle (left\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 315 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 45 degree angle (right\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 45 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the PlayStation button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the PlayStation button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "PS"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the right trigger 1 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right trigger 1 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "R1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the right trigger 2 button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right trigger 2 button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "R2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the R3 (right stick) button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the R3 (right stick) button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "R3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is greater\nthan threshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value above which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is greater than\n the provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisGreaterThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is less than\nthreshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value below which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is less than the\n provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisLessThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around this button's digital signal.\n\n:param button: the button index\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the button's digital signal attached\n to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the circle button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the circle button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "circle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the create button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the create button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "create"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the cross button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the cross button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "cross"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of axes for the HID.\n\n:returns: the number of axis for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the axis type of a joystick axis.\n\n:returns: the axis type of a joystick axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of buttons for the HID.\n\n:returns: the number of buttons on the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the circle button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCircleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the circle button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCircleButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the circle button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCircleButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the create button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCreateButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the create button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCreateButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the create button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCreateButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the cross button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCrossButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the cross button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCrossButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the cross button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getCrossButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the left trigger 1 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the left trigger 1 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL1ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the left trigger 1 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL1ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Get the left trigger 2 axis value of the controller. Note that this axis\nis bound to the range of [0, 1] as opposed to the usual [-1, 1].\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the left trigger 2 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the left trigger 2 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL2ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the left trigger 2 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL2ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the L3 (left stick) button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the L3 (left stick) button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL3ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the L3 (left stick) button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getL3ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Get the X axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Get the Y axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the name of the HID.\n\n:returns: the name of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the options button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getOptionsButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the options button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getOptionsButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the options button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getOptionsButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "pov", "type": "int"}], "tooltip": "Get the angle in degrees of a POV on the HID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(e.g. right is 90, upper-left is 315).\n\n:param pov: The index of the POV to read (starting at 0)\n\n:returns: the angle of the POV in degrees, or -1 if the POV is not pressed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of POVs for the HID.\n\n:returns: the number of POVs for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the PlayStation button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getPSButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the PlayStation button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getPSButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the PlayStation button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getPSButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the port number of the HID.\n\n:returns: The port number of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the right trigger 1 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the right trigger 1 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR1ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the right trigger 1 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR1ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Get the right trigger 2 axis value of the controller. Note that this axis\nis bound to the range of [0, 1] as opposed to the usual [-1, 1].\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the right trigger 2 button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the right trigger 2 button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR2ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the right trigger 2 button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR2ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the R3 (right stick) button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the R3 (right stick) button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR3ButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the R3 (right stick) button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getR3ButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis.\n\n:param axis: The axis to read, starting at 0.\n\n:returns: The value of the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Get the button value (starting at button 1).\n\nThe buttons are returned in a single 16 bit value with one bit representing\nthe state of each button. The appropriate button is returned as a boolean\nvalue.\n\nThis method returns true if the button is being held down at the time\nthat this method is being called.\n\n:param button: The button number to be read (starting at 1)\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was pressed since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from not pressed to held down\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you press the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was released since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from held down to not pressed\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you release the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Get the X axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Get the Y axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the square button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getSquareButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the square button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getSquareButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the square button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getSquareButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the touchpad button on the controller.\n\n:deprecated: Use GetTouchpadButton instead. This function is deprecated for\n removal to make function names consistent to allow the HID classes to be\n automatically generated.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTouchpad"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the touchpad button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTouchpadButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the touchpad button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTouchpadButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the touchpad button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTouchpadButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the touchpad was pressed since the last check.\n\n:deprecated: Use GetTouchpadButtonPressed instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the touchpad was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTouchpadPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the touchpad was released since the last check.\n\n:deprecated: Use GetLeftBumperButton instead. This function is deprecated\n for removal to make function names consistent to allow the HID classes to\n be automatically generated.\n\n:returns: Whether the touchpad was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTouchpadReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Read the value of the triangle button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTriangleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the triangle button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTriangleButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}], "tooltip": "Whether the triangle button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "getTriangleButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHIDType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.interfaces.GenericHID.HIDType", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the type of the HID.\n\n:returns: the type of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get if the HID is connected.\n\n:returns: true if the HID is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the options button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the options button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "options"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "outputNumber", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set a single HID output value for the HID.\n\n:param outputNumber: The index of the output to set (1-32)\n:param value: The value to set the output to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "value", "type": "int"}], "tooltip": "Set all output values for the HID.\n\n:param value: The 32 bit output value (1 bit for each output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.RumbleType"}, {"name": "value", "type": "float"}], "tooltip": "Set the rumble output for the HID.\n\nThe DS currently supports 2 rumble values, left rumble and right rumble.\n\n:param type: Which rumble value to set\n:param value: The normalized value (0 to 1) to set the rumble to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the square button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the square button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "square"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the touchpad button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the touchpad button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "touchpad"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "pS5Controller", "type": "wpilib.PS5Controller"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the triangle button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the triangle button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PS5Controller", "FUNC": "triangle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PWM.ts b/src/blocks/generated/class_wpilib.PWM.ts
index eb812f76..100d0a12 100644
--- a/src/blocks/generated/class_wpilib.PWM.ts
+++ b/src/blocks/generated/class_wpilib.PWM.ts
@@ -13,22 +13,22 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 19 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWM"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PWM", "args": [{"name": "channel", "type": "int"}, {"name": "registerSendable", "type": "bool"}], "tooltip": "Allocate a PWM given a channel number.\n\nChecks channel value range and allocates the appropriate channel.\nThe allocation is only done to help users ensure that they don't double\nassign channels.\n\n:param channel: The PWM channel number. 0-9 are on-board, 10-19 are on the\n MXP port\n:param registerSendable: If true, adds this instance to SendableRegistry\n and LiveWindow", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM"}, "inputs": {"ARG1": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "max", "type": "wpimath.units.microseconds"}, {"name": "deadbandMax", "type": "wpimath.units.microseconds"}, {"name": "center", "type": "wpimath.units.microseconds"}, {"name": "deadbandMin", "type": "wpimath.units.microseconds"}, {"name": "min", "type": "wpimath.units.microseconds"}], "tooltip": "Get the bounds on the PWM values.\n\nThis gets the bounds on the PWM values for a particular each type of\ncontroller. The values determine the upper and lower speeds as well as the\ndeadband bracket.\n\n:param max: The maximum pwm value\n:param deadbandMax: The high end of the deadband range\n:param center: The center speed (off)\n:param deadbandMin: The low end of the deadband range\n:param min: The minimum pwm value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getBounds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "Get the PWM value in terms of a position.\n\nThis is intended to be used by servos.\n\n@pre SetBounds() called.\n\n:returns: The position the servo is set to between 0.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.microseconds", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "Get the PWM pulse time directly from the hardware.\n\nRead a microsecond value from a PWM channel.\n\n:returns: Microsecond PWM control value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getPulseTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "Get the PWM value in terms of speed.\n\nThis is intended to be used by motor controllers.\n\n@pre SetBounds() called.\n\n:returns: The most recently set speed between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "Sets the PWM output to be a continuous high signal while enabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setAlwaysHighMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "max", "type": "wpimath.units.microseconds"}, {"name": "deadbandMax", "type": "wpimath.units.microseconds"}, {"name": "center", "type": "wpimath.units.microseconds"}, {"name": "deadbandMin", "type": "wpimath.units.microseconds"}, {"name": "min", "type": "wpimath.units.microseconds"}], "tooltip": "Set the bounds on the PWM pulse widths.\n\nThis sets the bounds on the PWM values for a particular type of controller.\nThe values determine the upper and lower speeds as well as the deadband\nbracket.\n\n:param max: The max PWM pulse width in us\n:param deadbandMax: The high end of the deadband range pulse width in us\n:param center: The center (off) pulse width in us\n:param deadbandMin: The low end of the deadband pulse width in us\n:param min: The minimum pulse width in us", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setBounds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "Temporarily disables the PWM output. The next set call will re-enable\nthe output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "mult", "type": "wpilib._wpilib.PWM.PeriodMultiplier"}], "tooltip": "Slow down the PWM signal for old devices.\n\n:param mult: The period multiplier to apply to this channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setPeriodMultiplier"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPeriodMultiplier"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "pos", "type": "float"}], "tooltip": "Set the PWM value based on a position.\n\nThis is intended to be used by servos.\n\n@pre SetBounds() called.\n\n:param pos: The position to set the servo between 0.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "time", "type": "wpimath.units.microseconds"}], "tooltip": "Set the PWM pulse time directly to the hardware.\n\nWrite a microsecond value to a PWM channel.\n\n:param time: Microsecond PWM value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setPulseTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "speed", "type": "float"}], "tooltip": "Set the PWM value based on a speed.\n\nThis is intended to be used by motor controllers.\n\n@pre SetBounds() called.\n\n:param speed: The speed to set the motor controller between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "Latches PWM to zero.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setZeroLatch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWM"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PWM", "args": [{"name": "channel", "type": "int"}, {"name": "registerSendable", "type": "bool"}], "tooltip": "Allocate a PWM given a channel number.\n\nChecks channel value range and allocates the appropriate channel.\nThe allocation is only done to help users ensure that they don't double\nassign channels.\n\n:param channel: The PWM channel number. 0-9 are on-board, 10-19 are on the\n MXP port\n:param registerSendable: If true, adds this instance to SendableRegistry\n and LiveWindow", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM"}, "inputs": {"ARG1": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "max", "type": "wpimath.units.microseconds"}, {"name": "deadbandMax", "type": "wpimath.units.microseconds"}, {"name": "center", "type": "wpimath.units.microseconds"}, {"name": "deadbandMin", "type": "wpimath.units.microseconds"}, {"name": "min", "type": "wpimath.units.microseconds"}], "tooltip": "Get the bounds on the PWM values.\n\nThis gets the bounds on the PWM values for a particular each type of\ncontroller. The values determine the upper and lower speeds as well as the\ndeadband bracket.\n\n:param max: The maximum pwm value\n:param deadbandMax: The high end of the deadband range\n:param center: The center speed (off)\n:param deadbandMin: The low end of the deadband range\n:param min: The minimum pwm value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getBounds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "Get the PWM value in terms of a position.\n\nThis is intended to be used by servos.\n\n@pre SetBounds() called.\n\n:returns: The position the servo is set to between 0.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.microseconds", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "Get the PWM pulse time directly from the hardware.\n\nRead a microsecond value from a PWM channel.\n\n:returns: Microsecond PWM control value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getPulseTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "Get the PWM value in terms of speed.\n\nThis is intended to be used by motor controllers.\n\n@pre SetBounds() called.\n\n:returns: The most recently set speed between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "Sets the PWM output to be a continuous high signal while enabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setAlwaysHighMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "max", "type": "wpimath.units.microseconds"}, {"name": "deadbandMax", "type": "wpimath.units.microseconds"}, {"name": "center", "type": "wpimath.units.microseconds"}, {"name": "deadbandMin", "type": "wpimath.units.microseconds"}, {"name": "min", "type": "wpimath.units.microseconds"}], "tooltip": "Set the bounds on the PWM pulse widths.\n\nThis sets the bounds on the PWM values for a particular type of controller.\nThe values determine the upper and lower speeds as well as the deadband\nbracket.\n\n:param max: The max PWM pulse width in us\n:param deadbandMax: The high end of the deadband range pulse width in us\n:param center: The center (off) pulse width in us\n:param deadbandMin: The low end of the deadband pulse width in us\n:param min: The minimum pulse width in us", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setBounds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "Temporarily disables the PWM output. The next set call will re-enable\nthe output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "mult", "type": "wpilib.PWM.PeriodMultiplier"}], "tooltip": "Slow down the PWM signal for old devices.\n\n:param mult: The period multiplier to apply to this channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setPeriodMultiplier"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPeriodMultiplier"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "pos", "type": "float"}], "tooltip": "Set the PWM value based on a position.\n\nThis is intended to be used by servos.\n\n@pre SetBounds() called.\n\n:param pos: The position to set the servo between 0.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "time", "type": "wpimath.units.microseconds"}], "tooltip": "Set the PWM pulse time directly to the hardware.\n\nWrite a microsecond value to a PWM channel.\n\n:param time: Microsecond PWM value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setPulseTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "speed", "type": "float"}], "tooltip": "Set the PWM value based on a speed.\n\nThis is intended to be used by motor controllers.\n\n@pre SetBounds() called.\n\n:param speed: The speed to set the motor controller between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "Latches PWM to zero.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setZeroLatch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.PWM.PeriodMultiplier", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.PWM.PeriodMultiplier", "ENUM_VALUE": "kPeriodMultiplier_1X"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.PWM.PeriodMultiplier", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.PWM.PeriodMultiplier", "ENUM_VALUE": "kPeriodMultiplier_2X"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.PWM.PeriodMultiplier", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.PWM.PeriodMultiplier", "ENUM_VALUE": "kPeriodMultiplier_4X"}},
diff --git a/src/blocks/generated/class_wpilib.PWMMotorController.ts b/src/blocks/generated/class_wpilib.PWMMotorController.ts
index cb3ebe3d..aa756b0c 100644
--- a/src/blocks/generated/class_wpilib.PWMMotorController.ts
+++ b/src/blocks/generated/class_wpilib.PWMMotorController.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMMotorController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PWMMotorController", "args": [{"name": "name", "type": "str"}, {"name": "channel", "type": "int"}], "tooltip": "Constructor for a PWM Motor %Controller connected via PWM.\n\n:param name: Name to use for SendableRegistry\n:param channel: The PWM channel that the controller is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMMotorController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PWMMotorController", "args": [{"name": "name", "type": "str"}, {"name": "channel", "type": "int"}], "tooltip": "Constructor for a PWM Motor %Controller connected via PWM.\n\n:param name: Name to use for SendableRegistry\n:param channel: The PWM channel that the controller is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PWMSparkFlex.ts b/src/blocks/generated/class_wpilib.PWMSparkFlex.ts
index ba8310a3..a7f2ecde 100644
--- a/src/blocks/generated/class_wpilib.PWMSparkFlex.ts
+++ b/src/blocks/generated/class_wpilib.PWMSparkFlex.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMSparkFlex"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PWMSparkFlex", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a SPARK Flex connected via PWM.\n\n:param channel: The PWM channel that the SPARK Flex is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMSparkFlex"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMSparkFlex"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PWMSparkFlex", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a SPARK Flex connected via PWM.\n\n:param channel: The PWM channel that the SPARK Flex is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMSparkFlex"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMSparkFlex", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PWMSparkMax.ts b/src/blocks/generated/class_wpilib.PWMSparkMax.ts
index 605da17d..c807812c 100644
--- a/src/blocks/generated/class_wpilib.PWMSparkMax.ts
+++ b/src/blocks/generated/class_wpilib.PWMSparkMax.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMSparkMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PWMSparkMax", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a SPARK MAX connected via PWM.\n\n:param channel: The PWM channel that the SPARK MAX is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMSparkMax"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMSparkMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PWMSparkMax", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a SPARK MAX connected via PWM.\n\n:param channel: The PWM channel that the SPARK MAX is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMSparkMax"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMSparkMax", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PWMTalonFX.ts b/src/blocks/generated/class_wpilib.PWMTalonFX.ts
index 8ea35d3b..fd32e697 100644
--- a/src/blocks/generated/class_wpilib.PWMTalonFX.ts
+++ b/src/blocks/generated/class_wpilib.PWMTalonFX.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMTalonFX"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PWMTalonFX", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Talon FX connected via PWM.\n\n:param channel: The PWM channel that the Talon FX is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMTalonFX"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMTalonFX"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PWMTalonFX", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Talon FX connected via PWM.\n\n:param channel: The PWM channel that the Talon FX is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMTalonFX"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMTalonFX", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PWMTalonSRX.ts b/src/blocks/generated/class_wpilib.PWMTalonSRX.ts
index df513147..a8d8eaf5 100644
--- a/src/blocks/generated/class_wpilib.PWMTalonSRX.ts
+++ b/src/blocks/generated/class_wpilib.PWMTalonSRX.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMTalonSRX"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PWMTalonSRX", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Talon SRX connected via PWM.\n\n:param channel: The PWM channel that the Talon SRX is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMTalonSRX"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMTalonSRX"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PWMTalonSRX", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Talon SRX connected via PWM.\n\n:param channel: The PWM channel that the Talon SRX is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMTalonSRX"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMTalonSRX", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PWMVenom.ts b/src/blocks/generated/class_wpilib.PWMVenom.ts
index 4e7fc577..ffd87c18 100644
--- a/src/blocks/generated/class_wpilib.PWMVenom.ts
+++ b/src/blocks/generated/class_wpilib.PWMVenom.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMVenom"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PWMVenom", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Venom connected via PWM.\n\n:param channel: The PWM channel that the Venom is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMVenom"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMVenom"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PWMVenom", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Venom connected via PWM.\n\n:param channel: The PWM channel that the Venom is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMVenom"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMVenom", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PWMVictorSPX.ts b/src/blocks/generated/class_wpilib.PWMVictorSPX.ts
index daee134d..5a49f5f6 100644
--- a/src/blocks/generated/class_wpilib.PWMVictorSPX.ts
+++ b/src/blocks/generated/class_wpilib.PWMVictorSPX.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMVictorSPX"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PWMVictorSPX", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Victor SPX connected via PWM.\n\n:param channel: The PWM channel that the Victor SPX is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMVictorSPX"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMVictorSPX"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PWMVictorSPX", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Victor SPX connected via PWM.\n\n:param channel: The PWM channel that the Victor SPX is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMVictorSPX"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMVictorSPX", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PneumaticHub.Faults.ts b/src/blocks/generated/class_wpilib.PneumaticHub.Faults.ts
index 19a1c90b..543d9f35 100644
--- a/src/blocks/generated/class_wpilib.PneumaticHub.Faults.ts
+++ b/src/blocks/generated/class_wpilib.PneumaticHub.Faults.ts
@@ -59,8 +59,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PneumaticHub.Faults", "varType": "int", "importModule": "", "selfLabel": "faults", "selfType": "wpilib.PneumaticHub.Faults"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.Faults", "VAR": "HardwareFault"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFaults"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PneumaticHub.Faults", "varType": "int", "importModule": "", "selfLabel": "faults", "selfType": "wpilib.PneumaticHub.Faults"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.Faults", "VAR": "SolenoidOverCurrent"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFaults"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PneumaticHub.Faults", "varType": "int", "importModule": "", "selfLabel": "faults", "selfType": "wpilib.PneumaticHub.Faults"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.Faults", "VAR": "SolenoidOverCurrent"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFaults"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PneumaticHub.Faults", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.Faults"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "faults", "type": "wpilib._wpilib.PneumaticHub.Faults"}, {"name": "channel", "type": "int"}], "tooltip": "Gets whether there is a fault at the specified channel.\n\n:param channel: Channel to check for faults.\n\n:returns: True if a a fault exists at the channel, otherwise false.\n @throws A ChannelIndexOutOfRange error if the provided channel is outside\n of the range supported by the hardware.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.Faults", "FUNC": "getChannelFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFaults"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PneumaticHub.Faults", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.Faults"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "faults", "type": "wpilib.PneumaticHub.Faults"}, {"name": "channel", "type": "int"}], "tooltip": "Gets whether there is a fault at the specified channel.\n\n:param channel: Channel to check for faults.\n\n:returns: True if a a fault exists at the channel, otherwise false.\n @throws A ChannelIndexOutOfRange error if the provided channel is outside\n of the range supported by the hardware.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.Faults", "FUNC": "getChannelFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFaults"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PneumaticHub.StickyFaults.ts b/src/blocks/generated/class_wpilib.PneumaticHub.StickyFaults.ts
index 039b86b2..86a994f5 100644
--- a/src/blocks/generated/class_wpilib.PneumaticHub.StickyFaults.ts
+++ b/src/blocks/generated/class_wpilib.PneumaticHub.StickyFaults.ts
@@ -33,7 +33,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PneumaticHub.StickyFaults", "varType": "int", "importModule": "", "selfLabel": "stickyFaults", "selfType": "wpilib.PneumaticHub.StickyFaults"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.StickyFaults", "VAR": "HasReset"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStickyFaults"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PneumaticHub.StickyFaults", "varType": "int", "importModule": "", "selfLabel": "stickyFaults", "selfType": "wpilib.PneumaticHub.StickyFaults"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.StickyFaults", "VAR": "SolenoidOverCurrent"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStickyFaults"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PneumaticHub.StickyFaults", "varType": "int", "importModule": "", "selfLabel": "stickyFaults", "selfType": "wpilib.PneumaticHub.StickyFaults"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.StickyFaults", "VAR": "SolenoidOverCurrent"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStickyFaults"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStickyFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PneumaticHub.StickyFaults", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.StickyFaults"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStickyFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PneumaticHub.StickyFaults", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.StickyFaults"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PneumaticHub.Version.ts b/src/blocks/generated/class_wpilib.PneumaticHub.Version.ts
index 9a3cf3e1..ce41f100 100644
--- a/src/blocks/generated/class_wpilib.PneumaticHub.Version.ts
+++ b/src/blocks/generated/class_wpilib.PneumaticHub.Version.ts
@@ -27,7 +27,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PneumaticHub.Version", "varType": "int", "importModule": "", "selfLabel": "version", "selfType": "wpilib.PneumaticHub.Version"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.Version", "VAR": "HardwareMinor"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myVersion"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PneumaticHub.Version", "varType": "int", "importModule": "", "selfLabel": "version", "selfType": "wpilib.PneumaticHub.Version"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.Version", "VAR": "UniqueId"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myVersion"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PneumaticHub.Version", "varType": "int", "importModule": "", "selfLabel": "version", "selfType": "wpilib.PneumaticHub.Version"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.Version", "VAR": "UniqueId"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myVersion"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myVersion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PneumaticHub.Version", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.Version"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myVersion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PneumaticHub.Version", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub.Version"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PneumaticHub.ts b/src/blocks/generated/class_wpilib.PneumaticHub.ts
index 4a00f303..a0e47902 100644
--- a/src/blocks/generated/class_wpilib.PneumaticHub.ts
+++ b/src/blocks/generated/class_wpilib.PneumaticHub.ts
@@ -11,42 +11,42 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 36 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticHub"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PneumaticHub", "args": [], "tooltip": "Constructs a PneumaticHub with the default ID (1).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticHub"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PneumaticHub", "args": [{"name": "module", "type": "int"}], "tooltip": "Constructs a PneumaticHub.\n\n:param module: module number to construct", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}, {"name": "mask", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "checkAndReserveSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "checkSolenoidChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "Clears the sticky faults.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "clearStickyFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "Disables the compressor. The compressor will not turn on until\nEnableCompressorDigital(), EnableCompressorAnalog(), or\nEnableCompressorHybrid() are called.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "disableCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "Enables the compressor in analog mode. This mode uses an analog pressure\nsensor connected to analog channel 0 to cycle the compressor. The\ncompressor will turn on when the pressure drops below ``minPressure``\nand will turn off when the pressure reaches ``maxPressure``.\n\n:param minPressure: The minimum pressure. The compressor will turn on when\n the pressure drops below this value. Range 0 - 120 PSI.\n:param maxPressure: The maximum pressure. The compressor will turn off when\n the pressure reaches this value. Range 0 - 120 PSI. Must be larger then\n minPressure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "enableCompressorAnalog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "enableCompressorDigital"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "Enables the compressor in hybrid mode. This mode uses both a digital\npressure switch and an analog pressure sensor connected to analog channel 0\nto cycle the compressor.\n\nThe compressor will turn on when \\a both:\n\n- The digital pressure switch indicates the system is not full AND\n- The analog pressure sensor indicates that the pressure in the system is\nbelow the specified minimum pressure.\n\nThe compressor will turn off when \\a either:\n\n- The digital pressure switch is disconnected or indicates that the system\nis full OR\n- The pressure detected by the analog sensor is greater than the specified\nmaximum pressure.\n\n:param minPressure: The minimum pressure. The compressor will turn on when\n the pressure drops below this value and the pressure switch indicates that\n the system is not full. Range 0 - 120 PSI.\n:param maxPressure: The maximum pressure. The compressor will turn off when\n the pressure reaches this value or the pressure switch is disconnected or\n indicates that the system is full. Range 0 - 120 PSI. Must be larger then\n minPressure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "enableCompressorHybrid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}, {"name": "index", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "fireOneShot"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "Returns the current voltage of the regulated 5v supply.\n\n:returns: The current voltage of the 5v supply.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "get5VRegulatedVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}, {"name": "channel", "type": "int"}], "tooltip": "Returns the raw voltage of the specified analog input channel.\n\n:param channel: The analog input channel to read voltage from.\n\n:returns: The voltage of the specified analog input channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getAnalogVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressorConfigType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.CompressorConfigType", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getCompressorConfigType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [{"name": "moduleType", "type": "wpilib._wpilib.PneumaticsModuleType"}], "tooltip": "For internal use to get the default for a specific type.\n\n:param moduleType: module type\n\n:returns: module default", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getDefaultForType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.PneumaticHub.Faults", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "Returns the faults currently active on this device.\n\n:returns: The faults.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.PneumaticsBase", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib._wpilib.PneumaticsModuleType"}], "tooltip": "For internal use to get a module for a specific type.\n\n:param module: module number\n:param moduleType: module type\n\n:returns: module", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getForType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "Returns the current input voltage for this device.\n\n:returns: The input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getModuleNumber"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.pounds_per_square_inch", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}, {"name": "channel", "type": "int"}], "tooltip": "Returns the pressure read by an analog pressure sensor on the specified\nanalog input channel.\n\n:param channel: The analog input channel to read pressure from.\n\n:returns: The pressure read by an analog pressure sensor on the specified\n analog input channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getPressure"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getSolenoidDisabledList"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "Returns the total current drawn by all solenoids.\n\n:returns: Total current drawn by all solenoids.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getSolenoidsTotalCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "Returns the current voltage of the solenoid power supply.\n\n:returns: The current voltage of the solenoid power supply.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getSolenoidsVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStickyFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.PneumaticHub.StickyFaults", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "Returns the sticky faults currently active on this device.\n\n:returns: The sticky faults.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getStickyFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myVersion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.PneumaticHub.Version", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "Returns the hardware and firmware versions of this device.\n\n:returns: The hardware and firmware versions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getVersion"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.Compressor", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "makeCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.DoubleSolenoid", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}, {"name": "forwardChannel", "type": "int"}, {"name": "reverseChannel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "makeDoubleSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.Solenoid", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "makeSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "reserveCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}, {"name": "index", "type": "int"}, {"name": "duration", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "setOneShotDuration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}, {"name": "mask", "type": "int"}, {"name": "values", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "setSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "unreserveCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib._wpilib.PneumaticHub"}, {"name": "mask", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "unreserveSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticHub"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PneumaticHub", "args": [], "tooltip": "Constructs a PneumaticHub with the default ID (1).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticHub"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PneumaticHub", "args": [{"name": "module", "type": "int"}], "tooltip": "Constructs a PneumaticHub.\n\n:param module: module number to construct", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}, {"name": "mask", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "checkAndReserveSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "checkSolenoidChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "Clears the sticky faults.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "clearStickyFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "Disables the compressor. The compressor will not turn on until\nEnableCompressorDigital(), EnableCompressorAnalog(), or\nEnableCompressorHybrid() are called.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "disableCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "Enables the compressor in analog mode. This mode uses an analog pressure\nsensor connected to analog channel 0 to cycle the compressor. The\ncompressor will turn on when the pressure drops below ``minPressure``\nand will turn off when the pressure reaches ``maxPressure``.\n\n:param minPressure: The minimum pressure. The compressor will turn on when\n the pressure drops below this value. Range 0 - 120 PSI.\n:param maxPressure: The maximum pressure. The compressor will turn off when\n the pressure reaches this value. Range 0 - 120 PSI. Must be larger then\n minPressure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "enableCompressorAnalog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "enableCompressorDigital"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "Enables the compressor in hybrid mode. This mode uses both a digital\npressure switch and an analog pressure sensor connected to analog channel 0\nto cycle the compressor.\n\nThe compressor will turn on when \\a both:\n\n- The digital pressure switch indicates the system is not full AND\n- The analog pressure sensor indicates that the pressure in the system is\nbelow the specified minimum pressure.\n\nThe compressor will turn off when \\a either:\n\n- The digital pressure switch is disconnected or indicates that the system\nis full OR\n- The pressure detected by the analog sensor is greater than the specified\nmaximum pressure.\n\n:param minPressure: The minimum pressure. The compressor will turn on when\n the pressure drops below this value and the pressure switch indicates that\n the system is not full. Range 0 - 120 PSI.\n:param maxPressure: The maximum pressure. The compressor will turn off when\n the pressure reaches this value or the pressure switch is disconnected or\n indicates that the system is full. Range 0 - 120 PSI. Must be larger then\n minPressure.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "enableCompressorHybrid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}, {"name": "index", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "fireOneShot"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "Returns the current voltage of the regulated 5v supply.\n\n:returns: The current voltage of the 5v supply.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "get5VRegulatedVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}, {"name": "channel", "type": "int"}], "tooltip": "Returns the raw voltage of the specified analog input channel.\n\n:param channel: The analog input channel to read voltage from.\n\n:returns: The voltage of the specified analog input channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getAnalogVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressorConfigType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.CompressorConfigType", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getCompressorConfigType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [{"name": "moduleType", "type": "wpilib.PneumaticsModuleType"}], "tooltip": "For internal use to get the default for a specific type.\n\n:param moduleType: module type\n\n:returns: module default", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getDefaultForType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.PneumaticHub.Faults", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "Returns the faults currently active on this device.\n\n:returns: The faults.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.PneumaticsBase", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib.PneumaticsModuleType"}], "tooltip": "For internal use to get a module for a specific type.\n\n:param module: module number\n:param moduleType: module type\n\n:returns: module", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getForType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "Returns the current input voltage for this device.\n\n:returns: The input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getModuleNumber"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.pounds_per_square_inch", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}, {"name": "channel", "type": "int"}], "tooltip": "Returns the pressure read by an analog pressure sensor on the specified\nanalog input channel.\n\n:param channel: The analog input channel to read pressure from.\n\n:returns: The pressure read by an analog pressure sensor on the specified\n analog input channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getPressure"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getSolenoidDisabledList"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "Returns the total current drawn by all solenoids.\n\n:returns: Total current drawn by all solenoids.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getSolenoidsTotalCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "Returns the current voltage of the solenoid power supply.\n\n:returns: The current voltage of the solenoid power supply.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getSolenoidsVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStickyFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.PneumaticHub.StickyFaults", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "Returns the sticky faults currently active on this device.\n\n:returns: The sticky faults.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getStickyFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myVersion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.PneumaticHub.Version", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "Returns the hardware and firmware versions of this device.\n\n:returns: The hardware and firmware versions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "getVersion"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.Compressor", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "makeCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.DoubleSolenoid", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}, {"name": "forwardChannel", "type": "int"}, {"name": "reverseChannel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "makeDoubleSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.Solenoid", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "makeSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "reserveCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}, {"name": "index", "type": "int"}, {"name": "duration", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "setOneShotDuration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}, {"name": "mask", "type": "int"}, {"name": "values", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "setSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "unreserveCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticHub", "type": "wpilib.PneumaticHub"}, {"name": "mask", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticHub", "FUNC": "unreserveSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticHub"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PneumaticsBase.ts b/src/blocks/generated/class_wpilib.PneumaticsBase.ts
index b4e6d064..71e57ba7 100644
--- a/src/blocks/generated/class_wpilib.PneumaticsBase.ts
+++ b/src/blocks/generated/class_wpilib.PneumaticsBase.ts
@@ -11,33 +11,33 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 27 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PneumaticsBase", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}, {"name": "mask", "type": "int"}], "tooltip": "Check to see if the solenoids marked in the bitmask can be reserved, and if\nso, reserve them.\n\n:param mask: The bitmask of solenoids to reserve. The LSB represents\n solenoid 0.\n\n:returns: 0 if successful; mask of solenoids that couldn't be allocated\n otherwise", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "checkAndReserveSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}, {"name": "channel", "type": "int"}], "tooltip": "Check if a solenoid channel is valid.\n\n:param channel: Channel to check\n\n:returns: True if channel exists", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "checkSolenoidChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Disables the compressor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "disableCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "If supported by the device, enables the compressor in analog mode. This\nmode uses an analog pressure sensor connected to analog channel 0 to cycle\nthe compressor. The compressor will turn on when the pressure drops below\n``minPressure`` and will turn off when the pressure reaches {@code\nmaxPressure}. This mode is only supported by the REV PH with the REV Analog\nPressure Sensor connected to analog channel 0.\n\nOn CTRE PCM, this will enable digital control.\n\n:param minPressure: The minimum pressure. The compressor will turn on\n when the pressure drops below this value.\n:param maxPressure: The maximum pressure. The compressor will turn\n off when the pressure reaches this value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "enableCompressorAnalog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Enables the compressor in digital mode using the digital pressure switch.\nThe compressor will turn on when the pressure switch indicates that the\nsystem is not full, and will turn off when the pressure switch indicates\nthat the system is full.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "enableCompressorDigital"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "If supported by the device, enables the compressor in hybrid mode. This\nmode uses both a digital pressure switch and an analog pressure sensor\nconnected to analog channel 0 to cycle the compressor. This mode is only\nsupported by the REV PH with the REV Analog Pressure Sensor connected to\nanalog channel 0.\n\nThe compressor will turn on when \\a both:\n\n- The digital pressure switch indicates the system is not full AND\n- The analog pressure sensor indicates that the pressure in the system\nis below the specified minimum pressure.\n\nThe compressor will turn off when \\a either:\n\n- The digital pressure switch is disconnected or indicates that the system\nis full OR\n- The pressure detected by the analog sensor is greater than the specified\nmaximum pressure.\n\nOn CTRE PCM, this will enable digital control.\n\n:param minPressure: The minimum pressure. The compressor will turn on\n when the pressure drops below this value and the pressure switch indicates\n that the system is not full.\n:param maxPressure: The maximum pressure. The compressor will turn\n off when the pressure reaches this value or the pressure switch is\n disconnected or indicates that the system is full.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "enableCompressorHybrid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}, {"name": "index", "type": "int"}], "tooltip": "Fire a single solenoid shot.\n\n:param index: solenoid index", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "fireOneShot"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}, {"name": "channel", "type": "int"}], "tooltip": "If supported by the device, returns the raw voltage of the specified analog\ninput channel.\n\nThis function is only supported by the REV PH. On CTRE PCM, this will\nreturn 0.\n\n:param channel: The analog input channel to read voltage from.\n\n:returns: The voltage of the specified analog input channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getAnalogVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Returns whether the compressor is active or not.\n\n:returns: True if the compressor is on - otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressorConfigType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.CompressorConfigType", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Returns the active compressor configuration.\n\n:returns: The active compressor configuration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getCompressorConfigType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Returns the current drawn by the compressor.\n\n:returns: The current drawn by the compressor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [{"name": "moduleType", "type": "wpilib._wpilib.PneumaticsModuleType"}], "tooltip": "For internal use to get the default for a specific type.\n\n:param moduleType: module type\n\n:returns: module default", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getDefaultForType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.PneumaticsBase", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib._wpilib.PneumaticsModuleType"}], "tooltip": "For internal use to get a module for a specific type.\n\n:param module: module number\n:param moduleType: module type\n\n:returns: module", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getForType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Get module number for this module.\n\n:returns: module number", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getModuleNumber"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.pounds_per_square_inch", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}, {"name": "channel", "type": "int"}], "tooltip": "If supported by the device, returns the pressure read by an analog\npressure sensor on the specified analog input channel.\n\nThis function is only supported by the REV PH. On CTRE PCM, this will\nreturn 0.\n\n:param channel: The analog input channel to read pressure from.\n\n:returns: The pressure read by an analog pressure sensor on the\n specified analog input channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getPressure"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Returns the state of the pressure switch.\n\n:returns: True if pressure switch indicates that the system is full,\n otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Get a bitmask of disabled solenoids.\n\n:returns: Bitmask indicating disabled solenoids. The LSB represents solenoid\n 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getSolenoidDisabledList"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Gets a bitmask of solenoid values.\n\n:returns: Bitmask containing the state of the solenoids. The LSB represents\n solenoid 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.Compressor", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Create a compressor object.\n\n:returns: Compressor object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "makeCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.DoubleSolenoid", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}, {"name": "forwardChannel", "type": "int"}, {"name": "reverseChannel", "type": "int"}], "tooltip": "Create a double solenoid object for the specified channels.\n\n:param forwardChannel: solenoid channel for forward\n:param reverseChannel: solenoid channel for reverse\n\n:returns: DoubleSolenoid object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "makeDoubleSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.Solenoid", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}, {"name": "channel", "type": "int"}], "tooltip": "Create a solenoid object for the specified channel.\n\n:param channel: solenoid channel\n\n:returns: Solenoid object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "makeSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Reserve the compressor.\n\n:returns: true if successful; false if compressor already reserved", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "reserveCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}, {"name": "index", "type": "int"}, {"name": "duration", "type": "wpimath.units.seconds"}], "tooltip": "Set the duration for a single solenoid shot.\n\n:param index: solenoid index\n:param duration: shot duration", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "setOneShotDuration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}, {"name": "mask", "type": "int"}, {"name": "values", "type": "int"}], "tooltip": "Sets solenoids on a pneumatics module.\n\n:param mask: Bitmask indicating which solenoids to set. The LSB represents\n solenoid 0.\n:param values: Bitmask indicating the desired states of the solenoids. The\n LSB represents solenoid 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "setSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Unreserve the compressor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "unreserveCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib._wpilib.PneumaticsBase"}, {"name": "mask", "type": "int"}], "tooltip": "Unreserve the solenoids marked in the bitmask.\n\n:param mask: The bitmask of solenoids to unreserve. The LSB represents\n solenoid 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "unreserveSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PneumaticsBase", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}, {"name": "mask", "type": "int"}], "tooltip": "Check to see if the solenoids marked in the bitmask can be reserved, and if\nso, reserve them.\n\n:param mask: The bitmask of solenoids to reserve. The LSB represents\n solenoid 0.\n\n:returns: 0 if successful; mask of solenoids that couldn't be allocated\n otherwise", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "checkAndReserveSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}, {"name": "channel", "type": "int"}], "tooltip": "Check if a solenoid channel is valid.\n\n:param channel: Channel to check\n\n:returns: True if channel exists", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "checkSolenoidChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}], "tooltip": "Disables the compressor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "disableCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "If supported by the device, enables the compressor in analog mode. This\nmode uses an analog pressure sensor connected to analog channel 0 to cycle\nthe compressor. The compressor will turn on when the pressure drops below\n``minPressure`` and will turn off when the pressure reaches {@code\nmaxPressure}. This mode is only supported by the REV PH with the REV Analog\nPressure Sensor connected to analog channel 0.\n\nOn CTRE PCM, this will enable digital control.\n\n:param minPressure: The minimum pressure. The compressor will turn on\n when the pressure drops below this value.\n:param maxPressure: The maximum pressure. The compressor will turn\n off when the pressure reaches this value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "enableCompressorAnalog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}], "tooltip": "Enables the compressor in digital mode using the digital pressure switch.\nThe compressor will turn on when the pressure switch indicates that the\nsystem is not full, and will turn off when the pressure switch indicates\nthat the system is full.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "enableCompressorDigital"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "If supported by the device, enables the compressor in hybrid mode. This\nmode uses both a digital pressure switch and an analog pressure sensor\nconnected to analog channel 0 to cycle the compressor. This mode is only\nsupported by the REV PH with the REV Analog Pressure Sensor connected to\nanalog channel 0.\n\nThe compressor will turn on when \\a both:\n\n- The digital pressure switch indicates the system is not full AND\n- The analog pressure sensor indicates that the pressure in the system\nis below the specified minimum pressure.\n\nThe compressor will turn off when \\a either:\n\n- The digital pressure switch is disconnected or indicates that the system\nis full OR\n- The pressure detected by the analog sensor is greater than the specified\nmaximum pressure.\n\nOn CTRE PCM, this will enable digital control.\n\n:param minPressure: The minimum pressure. The compressor will turn on\n when the pressure drops below this value and the pressure switch indicates\n that the system is not full.\n:param maxPressure: The maximum pressure. The compressor will turn\n off when the pressure reaches this value or the pressure switch is\n disconnected or indicates that the system is full.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "enableCompressorHybrid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}, {"name": "index", "type": "int"}], "tooltip": "Fire a single solenoid shot.\n\n:param index: solenoid index", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "fireOneShot"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}, {"name": "channel", "type": "int"}], "tooltip": "If supported by the device, returns the raw voltage of the specified analog\ninput channel.\n\nThis function is only supported by the REV PH. On CTRE PCM, this will\nreturn 0.\n\n:param channel: The analog input channel to read voltage from.\n\n:returns: The voltage of the specified analog input channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getAnalogVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}], "tooltip": "Returns whether the compressor is active or not.\n\n:returns: True if the compressor is on - otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressorConfigType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.CompressorConfigType", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}], "tooltip": "Returns the active compressor configuration.\n\n:returns: The active compressor configuration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getCompressorConfigType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}], "tooltip": "Returns the current drawn by the compressor.\n\n:returns: The current drawn by the compressor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [{"name": "moduleType", "type": "wpilib.PneumaticsModuleType"}], "tooltip": "For internal use to get the default for a specific type.\n\n:param moduleType: module type\n\n:returns: module default", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getDefaultForType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.PneumaticsBase", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib.PneumaticsModuleType"}], "tooltip": "For internal use to get a module for a specific type.\n\n:param module: module number\n:param moduleType: module type\n\n:returns: module", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getForType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}], "tooltip": "Get module number for this module.\n\n:returns: module number", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getModuleNumber"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.pounds_per_square_inch", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}, {"name": "channel", "type": "int"}], "tooltip": "If supported by the device, returns the pressure read by an analog\npressure sensor on the specified analog input channel.\n\nThis function is only supported by the REV PH. On CTRE PCM, this will\nreturn 0.\n\n:param channel: The analog input channel to read pressure from.\n\n:returns: The pressure read by an analog pressure sensor on the\n specified analog input channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getPressure"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}], "tooltip": "Returns the state of the pressure switch.\n\n:returns: True if pressure switch indicates that the system is full,\n otherwise false.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}], "tooltip": "Get a bitmask of disabled solenoids.\n\n:returns: Bitmask indicating disabled solenoids. The LSB represents solenoid\n 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getSolenoidDisabledList"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}], "tooltip": "Gets a bitmask of solenoid values.\n\n:returns: Bitmask containing the state of the solenoids. The LSB represents\n solenoid 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "getSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.Compressor", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}], "tooltip": "Create a compressor object.\n\n:returns: Compressor object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "makeCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.DoubleSolenoid", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}, {"name": "forwardChannel", "type": "int"}, {"name": "reverseChannel", "type": "int"}], "tooltip": "Create a double solenoid object for the specified channels.\n\n:param forwardChannel: solenoid channel for forward\n:param reverseChannel: solenoid channel for reverse\n\n:returns: DoubleSolenoid object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "makeDoubleSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.Solenoid", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}, {"name": "channel", "type": "int"}], "tooltip": "Create a solenoid object for the specified channel.\n\n:param channel: solenoid channel\n\n:returns: Solenoid object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "makeSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}], "tooltip": "Reserve the compressor.\n\n:returns: true if successful; false if compressor already reserved", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "reserveCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}, {"name": "index", "type": "int"}, {"name": "duration", "type": "wpimath.units.seconds"}], "tooltip": "Set the duration for a single solenoid shot.\n\n:param index: solenoid index\n:param duration: shot duration", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "setOneShotDuration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}, {"name": "mask", "type": "int"}, {"name": "values", "type": "int"}], "tooltip": "Sets solenoids on a pneumatics module.\n\n:param mask: Bitmask indicating which solenoids to set. The LSB represents\n solenoid 0.\n:param values: Bitmask indicating the desired states of the solenoids. The\n LSB represents solenoid 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "setSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}], "tooltip": "Unreserve the compressor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "unreserveCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBase", "type": "wpilib.PneumaticsBase"}, {"name": "mask", "type": "int"}], "tooltip": "Unreserve the solenoids marked in the bitmask.\n\n:param mask: The bitmask of solenoids to unreserve. The LSB represents\n solenoid 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsBase", "FUNC": "unreserveSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PneumaticsControlModule.ts b/src/blocks/generated/class_wpilib.PneumaticsControlModule.ts
index 02c573dd..9cb0a6ca 100644
--- a/src/blocks/generated/class_wpilib.PneumaticsControlModule.ts
+++ b/src/blocks/generated/class_wpilib.PneumaticsControlModule.ts
@@ -11,43 +11,43 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 37 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PneumaticsControlModule", "args": [], "tooltip": "Constructs a PneumaticsControlModule with the default ID (0).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PneumaticsControlModule", "args": [{"name": "module", "type": "int"}], "tooltip": "Constructs a PneumaticsControlModule.\n\n:param module: module number to construct", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}, {"name": "mask", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "checkAndReserveSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "checkSolenoidChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "Clears all sticky faults on this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "clearAllStickyFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "Disables the compressor. The compressor will not turn on until\nEnableCompressorDigital() is called.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "disableCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "Enables the compressor in digital mode. Analog mode is unsupported by the\nCTRE PCM.\n\n:param minPressure: Unsupported.\n:param maxPressure: Unsupported.\n @see EnableCompressorDigital()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "enableCompressorAnalog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "enableCompressorDigital"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "Enables the compressor in digital mode. Hybrid mode is unsupported by the\nCTRE PCM.\n\n:param minPressure: Unsupported.\n:param maxPressure: Unsupported.\n @see EnableCompressorDigital()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "enableCompressorHybrid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}, {"name": "index", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "fireOneShot"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}, {"name": "channel", "type": "int"}], "tooltip": "Unsupported by the CTRE PCM.\n\n:param channel: Unsupported.\n\n:returns: 0", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getAnalogVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressorConfigType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.CompressorConfigType", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorConfigType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "Return whether the compressor current is currently too high.\n\n:returns: True if the compressor current is too high, otherwise false.\n @see GetCompressorCurrentTooHighStickyFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorCurrentTooHighFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the compressor current has been too high since sticky\nfaults were last cleared. This fault is persistent and can be cleared by\nClearAllStickyFaults()\n\n:returns: True if the compressor current has been too high since sticky\n faults were last cleared.\n @see GetCompressorCurrentTooHighFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorCurrentTooHighStickyFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the compressor is currently disconnected.\n\n:returns: True if compressor is currently disconnected, otherwise false.\n @see GetCompressorNotConnectedStickyFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorNotConnectedFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the compressor has been disconnected since sticky faults\nwere last cleared. This fault is persistent and can be cleared by\nClearAllStickyFaults()\n\n:returns: True if the compressor has been disconnected since sticky faults\n were last cleared, otherwise false.\n @see GetCompressorNotConnectedFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorNotConnectedStickyFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the compressor is currently shorted.\n\n:returns: True if the compressor is currently shorted, otherwise false.\n @see GetCompressorShortedStickyFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorShortedFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the compressor has been shorted since sticky faults were\nlast cleared. This fault is persistent and can be cleared by\nClearAllStickyFaults()\n\n:returns: True if the compressor has been shorted since sticky faults were\n last cleared, otherwise false.\n @see GetCompressorShortedFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorShortedStickyFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [{"name": "moduleType", "type": "wpilib._wpilib.PneumaticsModuleType"}], "tooltip": "For internal use to get the default for a specific type.\n\n:param moduleType: module type\n\n:returns: module default", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getDefaultForType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.PneumaticsBase", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib._wpilib.PneumaticsModuleType"}], "tooltip": "For internal use to get a module for a specific type.\n\n:param module: module number\n:param moduleType: module type\n\n:returns: module", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getForType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getModuleNumber"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.pounds_per_square_inch", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}, {"name": "channel", "type": "int"}], "tooltip": "Unsupported by the CTRE PCM.\n\n:param channel: Unsupported.\n\n:returns: 0", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getPressure"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getSolenoidDisabledList"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the solenoid is currently reporting a voltage fault.\n\n:returns: True if solenoid is reporting a fault, otherwise false.\n @see GetSolenoidVoltageStickyFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getSolenoidVoltageFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the solenoid has reported a voltage fault since sticky\nfaults were last cleared. This fault is persistent and can be cleared by\nClearAllStickyFaults()\n\n:returns: True if solenoid is reporting a fault, otherwise false.\n @see GetSolenoidVoltageFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getSolenoidVoltageStickyFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.Compressor", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "makeCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.DoubleSolenoid", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}, {"name": "forwardChannel", "type": "int"}, {"name": "reverseChannel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "makeDoubleSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.Solenoid", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "makeSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "reserveCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}, {"name": "index", "type": "int"}, {"name": "duration", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "setOneShotDuration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}, {"name": "mask", "type": "int"}, {"name": "values", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "setSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "unreserveCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib._wpilib.PneumaticsControlModule"}, {"name": "mask", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "unreserveSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PneumaticsControlModule", "args": [], "tooltip": "Constructs a PneumaticsControlModule with the default ID (0).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PneumaticsControlModule", "args": [{"name": "module", "type": "int"}], "tooltip": "Constructs a PneumaticsControlModule.\n\n:param module: module number to construct", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}, {"name": "mask", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "checkAndReserveSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "checkSolenoidChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "Clears all sticky faults on this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "clearAllStickyFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "Disables the compressor. The compressor will not turn on until\nEnableCompressorDigital() is called.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "disableCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "Enables the compressor in digital mode. Analog mode is unsupported by the\nCTRE PCM.\n\n:param minPressure: Unsupported.\n:param maxPressure: Unsupported.\n @see EnableCompressorDigital()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "enableCompressorAnalog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "enableCompressorDigital"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}, {"name": "minPressure", "type": "wpimath.units.pounds_per_square_inch"}, {"name": "maxPressure", "type": "wpimath.units.pounds_per_square_inch"}], "tooltip": "Enables the compressor in digital mode. Hybrid mode is unsupported by the\nCTRE PCM.\n\n:param minPressure: Unsupported.\n:param maxPressure: Unsupported.\n @see EnableCompressorDigital()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "enableCompressorHybrid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}, {"name": "index", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "fireOneShot"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}, {"name": "channel", "type": "int"}], "tooltip": "Unsupported by the CTRE PCM.\n\n:param channel: Unsupported.\n\n:returns: 0", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getAnalogVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressorConfigType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.CompressorConfigType", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorConfigType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "Return whether the compressor current is currently too high.\n\n:returns: True if the compressor current is too high, otherwise false.\n @see GetCompressorCurrentTooHighStickyFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorCurrentTooHighFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the compressor current has been too high since sticky\nfaults were last cleared. This fault is persistent and can be cleared by\nClearAllStickyFaults()\n\n:returns: True if the compressor current has been too high since sticky\n faults were last cleared.\n @see GetCompressorCurrentTooHighFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorCurrentTooHighStickyFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the compressor is currently disconnected.\n\n:returns: True if compressor is currently disconnected, otherwise false.\n @see GetCompressorNotConnectedStickyFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorNotConnectedFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the compressor has been disconnected since sticky faults\nwere last cleared. This fault is persistent and can be cleared by\nClearAllStickyFaults()\n\n:returns: True if the compressor has been disconnected since sticky faults\n were last cleared, otherwise false.\n @see GetCompressorNotConnectedFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorNotConnectedStickyFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the compressor is currently shorted.\n\n:returns: True if the compressor is currently shorted, otherwise false.\n @see GetCompressorShortedStickyFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorShortedFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the compressor has been shorted since sticky faults were\nlast cleared. This fault is persistent and can be cleared by\nClearAllStickyFaults()\n\n:returns: True if the compressor has been shorted since sticky faults were\n last cleared, otherwise false.\n @see GetCompressorShortedFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getCompressorShortedStickyFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [{"name": "moduleType", "type": "wpilib.PneumaticsModuleType"}], "tooltip": "For internal use to get the default for a specific type.\n\n:param moduleType: module type\n\n:returns: module default", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getDefaultForType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.PneumaticsBase", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib.PneumaticsModuleType"}], "tooltip": "For internal use to get a module for a specific type.\n\n:param module: module number\n:param moduleType: module type\n\n:returns: module", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getForType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getModuleNumber"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.pounds_per_square_inch", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}, {"name": "channel", "type": "int"}], "tooltip": "Unsupported by the CTRE PCM.\n\n:param channel: Unsupported.\n\n:returns: 0", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getPressure"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getSolenoidDisabledList"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the solenoid is currently reporting a voltage fault.\n\n:returns: True if solenoid is reporting a fault, otherwise false.\n @see GetSolenoidVoltageStickyFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getSolenoidVoltageFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "Returns whether the solenoid has reported a voltage fault since sticky\nfaults were last cleared. This fault is persistent and can be cleared by\nClearAllStickyFaults()\n\n:returns: True if solenoid is reporting a fault, otherwise false.\n @see GetSolenoidVoltageFault()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getSolenoidVoltageStickyFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "getSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCompressor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.Compressor", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "makeCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.DoubleSolenoid", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}, {"name": "forwardChannel", "type": "int"}, {"name": "reverseChannel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "makeDoubleSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.Solenoid", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "makeSolenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "reserveCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}, {"name": "index", "type": "int"}, {"name": "duration", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "setOneShotDuration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}, {"name": "mask", "type": "int"}, {"name": "values", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "setSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "unreserveCompressor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsControlModule", "type": "wpilib.PneumaticsControlModule"}, {"name": "mask", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PneumaticsControlModule", "FUNC": "unreserveSolenoids"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsControlModule"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PowerDistribution.Faults.ts b/src/blocks/generated/class_wpilib.PowerDistribution.Faults.ts
index 7049fe6a..cf40794e 100644
--- a/src/blocks/generated/class_wpilib.PowerDistribution.Faults.ts
+++ b/src/blocks/generated/class_wpilib.PowerDistribution.Faults.ts
@@ -69,8 +69,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PowerDistribution.Faults", "varType": "int", "importModule": "", "selfLabel": "faults", "selfType": "wpilib.PowerDistribution.Faults"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.Faults", "VAR": "Channel9BreakerFault"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFaults"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PowerDistribution.Faults", "varType": "int", "importModule": "", "selfLabel": "faults", "selfType": "wpilib.PowerDistribution.Faults"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.Faults", "VAR": "HardwareFault"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFaults"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PowerDistribution.Faults", "varType": "int", "importModule": "", "selfLabel": "faults", "selfType": "wpilib.PowerDistribution.Faults"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.Faults", "VAR": "HardwareFault"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFaults"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PowerDistribution.Faults", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.Faults"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "faults", "type": "wpilib._wpilib.PowerDistribution.Faults"}, {"name": "channel", "type": "int"}], "tooltip": "Gets whether there is a breaker fault at a specified channel.\n\n:param channel: Channel to check for faults.\n\n:returns: If there is a breaker fault.\n @throws A ChannelIndexOutOfRange error if the given int is outside of the\n range supported by the hardware.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.Faults", "FUNC": "getBreakerFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFaults"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PowerDistribution.Faults", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.Faults"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "faults", "type": "wpilib.PowerDistribution.Faults"}, {"name": "channel", "type": "int"}], "tooltip": "Gets whether there is a breaker fault at a specified channel.\n\n:param channel: Channel to check for faults.\n\n:returns: If there is a breaker fault.\n @throws A ChannelIndexOutOfRange error if the given int is outside of the\n range supported by the hardware.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.Faults", "FUNC": "getBreakerFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFaults"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PowerDistribution.StickyFaults.ts b/src/blocks/generated/class_wpilib.PowerDistribution.StickyFaults.ts
index 4c67018a..47311335 100644
--- a/src/blocks/generated/class_wpilib.PowerDistribution.StickyFaults.ts
+++ b/src/blocks/generated/class_wpilib.PowerDistribution.StickyFaults.ts
@@ -75,8 +75,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PowerDistribution.StickyFaults", "varType": "int", "importModule": "", "selfLabel": "stickyFaults", "selfType": "wpilib.PowerDistribution.StickyFaults"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.StickyFaults", "VAR": "HardwareFault"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStickyFaults"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PowerDistribution.StickyFaults", "varType": "int", "importModule": "", "selfLabel": "stickyFaults", "selfType": "wpilib.PowerDistribution.StickyFaults"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.StickyFaults", "VAR": "HasReset"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStickyFaults"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PowerDistribution.StickyFaults", "varType": "int", "importModule": "", "selfLabel": "stickyFaults", "selfType": "wpilib.PowerDistribution.StickyFaults"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.StickyFaults", "VAR": "HasReset"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStickyFaults"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStickyFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PowerDistribution.StickyFaults", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.StickyFaults"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stickyFaults", "type": "wpilib._wpilib.PowerDistribution.StickyFaults"}, {"name": "channel", "type": "int"}], "tooltip": "Gets whether there is a sticky breaker fault at the specified channel.\n\n:param channel: Index to check for sticky faults.\n\n:returns: True if there is a sticky breaker fault at the channel, otherwise\n false.\n @throws A ChannelIndexOutOfRange error if the provided channel is outside\n of the range supported by the hardware.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.StickyFaults", "FUNC": "getBreakerFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStickyFaults"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStickyFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PowerDistribution.StickyFaults", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.StickyFaults"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stickyFaults", "type": "wpilib.PowerDistribution.StickyFaults"}, {"name": "channel", "type": "int"}], "tooltip": "Gets whether there is a sticky breaker fault at the specified channel.\n\n:param channel: Index to check for sticky faults.\n\n:returns: True if there is a sticky breaker fault at the channel, otherwise\n false.\n @throws A ChannelIndexOutOfRange error if the provided channel is outside\n of the range supported by the hardware.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.StickyFaults", "FUNC": "getBreakerFault"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStickyFaults"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PowerDistribution.Version.ts b/src/blocks/generated/class_wpilib.PowerDistribution.Version.ts
index 554dd604..0e415f62 100644
--- a/src/blocks/generated/class_wpilib.PowerDistribution.Version.ts
+++ b/src/blocks/generated/class_wpilib.PowerDistribution.Version.ts
@@ -27,7 +27,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PowerDistribution.Version", "varType": "int", "importModule": "", "selfLabel": "version", "selfType": "wpilib.PowerDistribution.Version"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.Version", "VAR": "HardwareMinor"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myVersion"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PowerDistribution.Version", "varType": "int", "importModule": "", "selfLabel": "version", "selfType": "wpilib.PowerDistribution.Version"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.Version", "VAR": "UniqueId"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myVersion"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.PowerDistribution.Version", "varType": "int", "importModule": "", "selfLabel": "version", "selfType": "wpilib.PowerDistribution.Version"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.Version", "VAR": "UniqueId"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myVersion"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myVersion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PowerDistribution.Version", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.Version"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myVersion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PowerDistribution.Version", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution.Version"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.PowerDistribution.ts b/src/blocks/generated/class_wpilib.PowerDistribution.ts
index 082ad3b7..056d9e99 100644
--- a/src/blocks/generated/class_wpilib.PowerDistribution.ts
+++ b/src/blocks/generated/class_wpilib.PowerDistribution.ts
@@ -16,26 +16,26 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 23 blocks.
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.PowerDistribution", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "VAR": "kDefaultModule"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistribution"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PowerDistribution", "args": [], "tooltip": "Constructs a PowerDistribution object.\n\nDetects the connected PDP/PDH using the default CAN ID (0 for CTRE and 1\nfor REV).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistribution"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.PowerDistribution", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib._wpilib.PowerDistribution.ModuleType"}], "tooltip": "Constructs a PowerDistribution object.\n\n:param module: The CAN ID of the PDP/PDH\n:param moduleType: The type of module", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myModuleType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Remove all of the fault flags on the PDP/PDH.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "clearStickyFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[float]", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Query all currents of the PDP.\n\n:returns: The current of each channel in Amperes", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getAllCurrents"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}, {"name": "channel", "type": "int"}], "tooltip": "Query the current of a single channel of the PDP/PDH.\n\n:param channel: the channel to query (0-15 for PDP, 0-23 for PDH)\n\n:returns: The current of the channel in Amperes", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.PowerDistribution.Faults", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Returns the power distribution faults.\n\nOn a CTRE PDP, this will return an object with no faults active.\n\n:returns: The power distribution faults.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Gets module number (CAN ID).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getModule"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Gets the number of channels for this power distribution object.\n\n:returns: Number of output channels (16 for PDP, 24 for PDH).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getNumChannels"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStickyFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.PowerDistribution.StickyFaults", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Returns the power distribution sticky faults.\n\nOn a CTRE PDP, this will return an object with no faults active.\n\n:returns: The power distribution sticky faults.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getStickyFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Gets whether the PDH switchable channel is turned on or off. Returns false\nwith the CTRE PDP.\n\n:returns: The output state of the PDH switchable channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getSwitchableChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Query the temperature of the PDP.\n\nNot supported on the Rev PDH and returns 0.\n\n:returns: The temperature in degrees Celsius", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getTemperature"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Query the total current of all monitored PDP/PDH channels.\n\n:returns: The total current drawn from all channels in Amperes", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getTotalCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Query the total energy drawn from the monitored PDP channels.\n\nNot supported on the Rev PDH and returns 0.\n\n:returns: The total energy drawn in Joules", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getTotalEnergy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Query the total power drawn from all monitored PDP channels.\n\nNot supported on the Rev PDH and returns 0.\n\n:returns: The total power drawn in Watts", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getTotalPower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myModuleType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.PowerDistribution.ModuleType", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Gets module type.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myVersion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.PowerDistribution.Version", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getVersion"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Query the input voltage of the PDP/PDH.\n\n:returns: The input voltage in volts", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Reset the total energy drawn from the PDP.\n\nNot supported on the Rev PDH and does nothing.\n\n@see PowerDistribution#GetTotalEnergy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "resetTotalEnergy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistribution", "type": "wpilib._wpilib.PowerDistribution"}, {"name": "enabled", "type": "bool"}], "tooltip": "Sets the PDH switchable channel on or off. Does nothing with the CTRE PDP.\n\n:param enabled: Whether to turn the PDH switchable channel on or off", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "setSwitchableChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistribution"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PowerDistribution", "args": [], "tooltip": "Constructs a PowerDistribution object.\n\nDetects the connected PDP/PDH using the default CAN ID (0 for CTRE and 1\nfor REV).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistribution"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.PowerDistribution", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib.PowerDistribution.ModuleType"}], "tooltip": "Constructs a PowerDistribution object.\n\n:param module: The CAN ID of the PDP/PDH\n:param moduleType: The type of module", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myModuleType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Remove all of the fault flags on the PDP/PDH.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "clearStickyFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[float]", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Query all currents of the PDP.\n\n:returns: The current of each channel in Amperes", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getAllCurrents"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}, {"name": "channel", "type": "int"}], "tooltip": "Query the current of a single channel of the PDP/PDH.\n\n:param channel: the channel to query (0-15 for PDP, 0-23 for PDH)\n\n:returns: The current of the channel in Amperes", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.PowerDistribution.Faults", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Returns the power distribution faults.\n\nOn a CTRE PDP, this will return an object with no faults active.\n\n:returns: The power distribution faults.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Gets module number (CAN ID).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getModule"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Gets the number of channels for this power distribution object.\n\n:returns: Number of output channels (16 for PDP, 24 for PDH).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getNumChannels"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStickyFaults"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.PowerDistribution.StickyFaults", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Returns the power distribution sticky faults.\n\nOn a CTRE PDP, this will return an object with no faults active.\n\n:returns: The power distribution sticky faults.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getStickyFaults"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Gets whether the PDH switchable channel is turned on or off. Returns false\nwith the CTRE PDP.\n\n:returns: The output state of the PDH switchable channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getSwitchableChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Query the temperature of the PDP.\n\nNot supported on the Rev PDH and returns 0.\n\n:returns: The temperature in degrees Celsius", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getTemperature"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Query the total current of all monitored PDP/PDH channels.\n\n:returns: The total current drawn from all channels in Amperes", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getTotalCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Query the total energy drawn from the monitored PDP channels.\n\nNot supported on the Rev PDH and returns 0.\n\n:returns: The total energy drawn in Joules", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getTotalEnergy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Query the total power drawn from all monitored PDP channels.\n\nNot supported on the Rev PDH and returns 0.\n\n:returns: The total power drawn in Watts", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getTotalPower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myModuleType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.PowerDistribution.ModuleType", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Gets module type.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myVersion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.PowerDistribution.Version", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getVersion"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Query the input voltage of the PDP/PDH.\n\n:returns: The input voltage in volts", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}], "tooltip": "Reset the total energy drawn from the PDP.\n\nNot supported on the Rev PDH and does nothing.\n\n@see PowerDistribution#GetTotalEnergy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "resetTotalEnergy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistribution", "type": "wpilib.PowerDistribution"}, {"name": "enabled", "type": "bool"}], "tooltip": "Sets the PDH switchable channel on or off. Does nothing with the CTRE PDP.\n\n:param enabled: Whether to turn the PDH switchable channel on or off", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PowerDistribution", "FUNC": "setSwitchableChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.PowerDistribution.ModuleType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.PowerDistribution.ModuleType", "ENUM_VALUE": "kCTRE"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.PowerDistribution.ModuleType", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.PowerDistribution.ModuleType", "ENUM_VALUE": "kRev"}},
];
diff --git a/src/blocks/generated/class_wpilib.Relay.ts b/src/blocks/generated/class_wpilib.Relay.ts
index c0263918..c34cb8f4 100644
--- a/src/blocks/generated/class_wpilib.Relay.ts
+++ b/src/blocks/generated/class_wpilib.Relay.ts
@@ -14,21 +14,21 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRelay"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Relay", "args": [{"name": "channel", "type": "int"}, {"name": "direction", "type": "wpilib._wpilib.Relay.Direction"}], "tooltip": "Relay constructor given a channel.\n\nThis code initializes the relay and reserves all resources that need to be\nlocked. Initially the relay is set to both lines at 0v.\n\n:param channel: The channel number (0-3).\n:param direction: The direction that the Relay object will control.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDirection"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRelay"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Relay", "args": [{"name": "channel", "type": "int"}, {"name": "direction", "type": "wpilib.Relay.Direction"}], "tooltip": "Relay constructor given a channel.\n\nThis code initializes the relay and reserves all resources that need to be\nlocked. Initially the relay is set to both lines at 0v.\n\n:param channel: The channel number (0-3).\n:param direction: The direction that the Relay object will control.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDirection"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myValue"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.Relay.Value", "args": [{"name": "relay", "type": "wpilib._wpilib.Relay"}], "tooltip": "Get the Relay State\n\nGets the current state of the relay.\n\nWhen set to kForwardOnly or kReverseOnly, value is returned as kOn/kOff not\nkForward/kReverse (per the recommendation in Set).\n\n:returns: The current state of the relay as a Relay::Value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "relay", "type": "wpilib._wpilib.Relay"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "relay", "type": "wpilib._wpilib.Relay"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relay", "type": "wpilib._wpilib.Relay"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relay", "type": "wpilib._wpilib.Relay"}, {"name": "value", "type": "wpilib._wpilib.Relay.Value"}], "tooltip": "Set the relay state.\n\nValid values depend on which directions of the relay are controlled by the\nobject.\n\nWhen set to kBothDirections, the relay can be any of the four states:\n0v-0v, 0v-12v, 12v-0v, 12v-12v\n\nWhen set to kForwardOnly or kReverseOnly, you can specify the constant for\nthe direction or you can simply specify kOff and kOn. Using only kOff and\nkOn is recommended.\n\n:param value: The state to set the relay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relay", "type": "wpilib._wpilib.Relay"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myValue"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.Relay.Value", "args": [{"name": "relay", "type": "wpilib.Relay"}], "tooltip": "Get the Relay State\n\nGets the current state of the relay.\n\nWhen set to kForwardOnly or kReverseOnly, value is returned as kOn/kOff not\nkForward/kReverse (per the recommendation in Set).\n\n:returns: The current state of the relay as a Relay::Value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "relay", "type": "wpilib.Relay"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "relay", "type": "wpilib.Relay"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relay", "type": "wpilib.Relay"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relay", "type": "wpilib.Relay"}, {"name": "value", "type": "wpilib.Relay.Value"}], "tooltip": "Set the relay state.\n\nValid values depend on which directions of the relay are controlled by the\nobject.\n\nWhen set to kBothDirections, the relay can be any of the four states:\n0v-0v, 0v-12v, 12v-0v, 12v-12v\n\nWhen set to kForwardOnly or kReverseOnly, you can specify the constant for\nthe direction or you can simply specify kOff and kOn. Using only kOff and\nkOn is recommended.\n\n:param value: The state to set the relay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relay", "type": "wpilib.Relay"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Relay", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Relay.Direction", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Relay.Direction", "ENUM_VALUE": "kBothDirections"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Relay.Direction", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Relay.Direction", "ENUM_VALUE": "kForwardOnly"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.Relay.Direction", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.Relay.Direction", "ENUM_VALUE": "kReverseOnly"}},
diff --git a/src/blocks/generated/class_wpilib.RobotBase.ts b/src/blocks/generated/class_wpilib.RobotBase.ts
index 6d8983b9..e4151f8e 100644
--- a/src/blocks/generated/class_wpilib.RobotBase.ts
+++ b/src/blocks/generated/class_wpilib.RobotBase.ts
@@ -11,22 +11,22 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 16 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRobotBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.RobotBase", "args": [], "tooltip": "Constructor for a generic robot program.\n\nUser code can be placed in the constructor that runs before the\nAutonomous or Operator Control period starts. The constructor will run to\ncompletion before Autonomous is entered.\n\nThis must be used to ensure that the communications code starts. In the\nfuture it would be nice to put this code into it's own task that loads on\nboot so ensure that it runs.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Ends the main loop in StartCompetition().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "endCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[bool, bool, bool]", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "More efficient way to determine what state the robot is in.\n\n:returns: booleans representing enabled, isautonomous, istest\n\n.. versionadded:: 2019.2.1\n\n.. note:: This function only exists in RobotPy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "getControlState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRuntimeType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.RuntimeType", "args": [], "tooltip": "Get the current runtime type.\n\n:returns: Current runtime type.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "getRuntimeType"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode.\n\n:returns: True if the robot is currently operating Autonomously as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomous"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode and enabled.\n\n:returns: True if the robot us currently operating Autonomously while enabled\n as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomousEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently disabled.\n\n:returns: True if the Robot is currently disabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently enabled.\n\n:returns: True if the Robot is currently enabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRobotBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.RobotBase", "args": [], "tooltip": "Constructor for a generic robot program.\n\nUser code can be placed in the constructor that runs before the\nAutonomous or Operator Control period starts. The constructor will run to\ncompletion before Autonomous is entered.\n\nThis must be used to ensure that the communications code starts. In the\nfuture it would be nice to put this code into it's own task that loads on\nboot so ensure that it runs.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Ends the main loop in StartCompetition().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "endCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[bool, bool, bool]", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "More efficient way to determine what state the robot is in.\n\n:returns: booleans representing enabled, isautonomous, istest\n\n.. versionadded:: 2019.2.1\n\n.. note:: This function only exists in RobotPy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "getControlState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRuntimeType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.RuntimeType", "args": [], "tooltip": "Get the current runtime type.\n\n:returns: Current runtime type.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "getRuntimeType"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode.\n\n:returns: True if the robot is currently operating Autonomously as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomous"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode and enabled.\n\n:returns: True if the robot us currently operating Autonomously while enabled\n as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomousEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently disabled.\n\n:returns: True if the Robot is currently disabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently enabled.\n\n:returns: True if the Robot is currently enabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Get if the robot is real.\n\n:returns: If the robot is running in the real world.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isReal"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Get if the robot is a simulation.\n\n:returns: If the robot is running in simulation.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isSimulation"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Operator Control mode.\n\n:returns: True if the robot is currently operating in Tele-Op mode as\n determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Operator Control mode and enabled.\n\n:returns: True if the robot is currently operating in Tele-Op mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Test mode.\n\n:returns: True if the robot is currently running in Test mode as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Test mode and enabled.\n\n:returns: True if the robot is currently operating in Test mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTestEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Operator Control mode.\n\n:returns: True if the robot is currently operating in Tele-Op mode as\n determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Operator Control mode and enabled.\n\n:returns: True if the robot is currently operating in Tele-Op mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Test mode.\n\n:returns: True if the robot is currently running in Test mode as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Test mode and enabled.\n\n:returns: True if the robot is currently operating in Test mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTestEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "object", "args": [{"name": "robot_cls", "type": "object"}], "tooltip": "Starting point for the application", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "main"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Start the main robot code. This function will be called once and should not\nexit until signalled by EndCompetition()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "startCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Start the main robot code. This function will be called once and should not\nexit until signalled by EndCompetition()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "startCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.RobotController.ts b/src/blocks/generated/class_wpilib.RobotController.ts
index 57aa0312..e74ad572 100644
--- a/src/blocks/generated/class_wpilib.RobotController.ts
+++ b/src/blocks/generated/class_wpilib.RobotController.ts
@@ -13,7 +13,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.volts", "args": [], "tooltip": "Read the battery voltage.\n\n:returns: The battery voltage in Volts.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getBatteryVoltage"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.volts", "args": [], "tooltip": "Get the current brownout voltage setting.\n\n:returns: The brownout voltage", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getBrownoutVoltage"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCANStatus"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.CANStatus", "args": [], "tooltip": "Get the current status of the CAN bus.\n\n:returns: The status of the CAN bus", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getCANStatus"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCANStatus"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.CANStatus", "args": [], "tooltip": "Get the current status of the CAN bus.\n\n:returns: The status of the CAN bus", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getCANStatus"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.celsius", "args": [], "tooltip": "Get the current CPU temperature.\n\n:returns: current CPU temperature", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getCPUTemp"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "str", "args": [], "tooltip": "Return the comments from the roboRIO web interface.\n\nThe comments string is cached after the first call to this function on the\nRoboRIO - restart the robot code to reload the comments string after\nchanging it in the web interface.\n\n:returns: The comments from the roboRIO web interface.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getComments"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [], "tooltip": "Gets the number of times the system has been disabled due to communication\nerrors with the Driver Station.\n\n:returns: number of disables due to communication errors.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getCommsDisableCount"}},
@@ -32,7 +32,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "float", "args": [], "tooltip": "Get the input current to the robot controller.\n\n:returns: The controller input current value in Amps", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getInputCurrent"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "float", "args": [], "tooltip": "Get the input voltage to the robot controller.\n\n:returns: The controller input voltage value in Volts", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getInputVoltage"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Gets the current state of the Robot Signal Light (RSL)\n\n:returns: The current state of the RSL- true if on, false if off", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getRSLState"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRadioLEDState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.RadioLEDState", "args": [], "tooltip": "Get the state of the \"Radio\" LED. On the RoboRIO, this reads from sysfs, so\nthis function should not be called multiple times per loop cycle to avoid\noverruns.\n\n:returns: The state of the LED.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getRadioLEDState"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRadioLEDState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.RadioLEDState", "args": [], "tooltip": "Get the state of the \"Radio\" LED. On the RoboRIO, this reads from sysfs, so\nthis function should not be called multiple times per loop cycle to avoid\noverruns.\n\n:returns: The state of the LED.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getRadioLEDState"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "str", "args": [], "tooltip": "Return the serial number of the roboRIO.\n\n:returns: The serial number of the roboRIO.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getSerialNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [], "tooltip": "Returns the team number configured for the robot controller.\n\n:returns: team number, or 0 if not found.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getTeamNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [], "tooltip": "Read the microsecond timestamp. By default, the time is based on the FPGA\nhardware clock in microseconds since the FPGA started. However, the return\nvalue of this method may be modified to use any time base, including\nnon-monotonic and non-continuous time bases.\n\n:returns: The current time in microseconds.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "getTime"}},
@@ -48,8 +48,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "enabled", "type": "bool"}], "tooltip": "Enables or disables the 3.3V rail.\n\n:param enabled: whether to enable the 3.3V rail.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "setEnabled3V3"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "enabled", "type": "bool"}], "tooltip": "Enables or disables the 5V rail.\n\n:param enabled: whether to enable the 5V rail.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "setEnabled5V"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "enabled", "type": "bool"}], "tooltip": "Enables or disables the 6V rail.\n\n:param enabled: whether to enable the 6V rail.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "setEnabled6V"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "state", "type": "wpilib._wpilib.RadioLEDState"}], "tooltip": "Set the state of the \"Radio\" LED. On the RoboRIO, this writes to sysfs, so\nthis function should not be called multiple times per loop cycle to avoid\noverruns.\n\n:param state: The state to set the LED to.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "setRadioLEDState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRadioLEDState"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "supplier", "type": "Callable[[], int]"}], "tooltip": "Sets a new source to provide the clock time in microseconds. Changing this\naffects the return value of ``GetTime``.\n\n:param supplier: Function to return the time in microseconds.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "setTimeSource"}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "state", "type": "wpilib.RadioLEDState"}], "tooltip": "Set the state of the \"Radio\" LED. On the RoboRIO, this writes to sysfs, so\nthis function should not be called multiple times per loop cycle to avoid\noverruns.\n\n:param state: The state to set the LED to.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "setRadioLEDState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRadioLEDState"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "supplier", "type": "Callable[[], int]"}], "tooltip": "Sets a new source to provide the clock time in microseconds. Changing this\naffects the return value of ``GetTime``.\n\n:param supplier: Function to return the time in microseconds.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotController", "FUNC": "setTimeSource"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.SD540.ts b/src/blocks/generated/class_wpilib.SD540.ts
index 4b55bd57..f707003b 100644
--- a/src/blocks/generated/class_wpilib.SD540.ts
+++ b/src/blocks/generated/class_wpilib.SD540.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySD540"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.SD540", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a SD540 connected via PWM.\n\n:param channel: The PWM channel that the SD540 is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SD540"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySD540"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.SD540", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a SD540 connected via PWM.\n\n:param channel: The PWM channel that the SD540 is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SD540"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SD540", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.SPI.ts b/src/blocks/generated/class_wpilib.SPI.ts
index 928adc5a..81959ae1 100644
--- a/src/blocks/generated/class_wpilib.SPI.ts
+++ b/src/blocks/generated/class_wpilib.SPI.ts
@@ -14,38 +14,38 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 41 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySPI"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.SPI", "args": [{"name": "port", "type": "wpilib._wpilib.SPI.Port"}], "tooltip": "Constructor\n\n:param port: the physical SPI port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "csToSclkTicks", "type": "int"}, {"name": "stallTicks", "type": "int"}, {"name": "pow2BytesPerRead", "type": "int"}], "tooltip": "Configure the Auto SPI Stall time between reads.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP.\n:param csToSclkTicks: the number of ticks to wait before asserting the cs\n pin\n:param stallTicks: the number of ticks to stall for\n:param pow2BytesPerRead: the number of bytes to read before stalling", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "configureAutoStall"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Force the engine to make a single transfer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "forceAutoRead"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Frees the accumulator.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "freeAccumulator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Frees the automatic SPI transfer engine.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "freeAuto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Read the average of the accumulated value.\n\n:returns: The accumulated average value (value / count).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Read the number of accumulated values.\n\nRead the count of the accumulated values since the accumulator was last\nReset().\n\n:returns: The number of times samples from the channel were accumulated.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Read the average of the integrated value. This is the sum of (each value\ntimes the time between values), divided by the count.\n\n:returns: The average of the integrated value accumulated since the last\n Reset().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorIntegratedAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Read the integrated value. This is the sum of (each value * time between\nvalues).\n\n:returns: The integrated value accumulated since the last Reset().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorIntegratedValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Read the last value read by the accumulator engine.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorLastValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[int, int]", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Read the accumulated value and the number of accumulated values atomically.\n\nThis function reads the value and count atomically.\nThis can be used for averaging.\n\n:param value: Pointer to the 64-bit accumulated output.\n:param count: Pointer to the number of accumulation cycles.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Read the accumulated value.\n\n:returns: The 64-bit value accumulated since the last Reset().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Get the number of bytes dropped by the automatic SPI transfer engine due\nto the receive buffer being full.\n\n:returns: Number of bytes dropped", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAutoDroppedCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.SPI.Port", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Returns the SPI port.\n\n:returns: The SPI port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "period", "type": "wpimath.units.seconds"}, {"name": "cmd", "type": "int"}, {"name": "xferSize", "type": "int"}, {"name": "validMask", "type": "int"}, {"name": "validValue", "type": "int"}, {"name": "dataShift", "type": "int"}, {"name": "dataSize", "type": "int"}, {"name": "isSigned", "type": "bool"}, {"name": "bigEndian", "type": "bool"}], "tooltip": "Initialize the accumulator.\n\n:param period: Time between reads\n:param cmd: SPI command to send to request data\n:param xferSize: SPI transfer size, in bytes\n:param validMask: Mask to apply to received data for validity checking\n:param validValue: After valid_mask is applied, required matching value for\n validity checking\n:param dataShift: Bit shift to apply to received data to get actual data\n value\n:param dataSize: Size (in bits) of data field\n:param isSigned: Is data field signed?\n:param bigEndian: Is device big endian?", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "initAccumulator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "bufferSize", "type": "int"}], "tooltip": "Initialize automatic SPI transfer engine.\n\nOnly a single engine is available, and use of it blocks use of all other\nchip select usage on the same physical SPI port while it is running.\n\n:param bufferSize: buffer size in bytes", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "initAuto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "initiate", "type": "bool"}, {"name": "dataReceived", "type": "Buffer"}], "tooltip": "Read a word from the receive FIFO.\n\nWaits for the current transfer to complete if the receive FIFO is empty.\n\nIf the receive FIFO is empty, there is no active transfer, and initiate\nis false, errors.\n\n:param initiate: If true, this function pushes \"0\" into the transmit\n buffer and initiates a transfer. If false, this\n function assumes that data is already in the receive\n FIFO from a previous write.\n:param dataReceived: Buffer to receive data from the device\n:param size: The length of the transaction, in bytes", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "read"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "buffer", "type": "Buffer"}, {"name": "timeout", "type": "wpimath.units.seconds"}], "tooltip": "Read data that has been transferred by the automatic SPI transfer engine.\n\nTransfers may be made a byte at a time, so it's necessary for the caller\nto handle cases where an entire transfer has not been completed.\n\nEach received data sequence consists of a timestamp followed by the\nreceived data bytes, one byte per word (in the least significant byte).\nThe length of each received data sequence is the same as the combined\nsize of the data and zeroSize set in SetAutoTransmitData().\n\nBlocks until numToRead words have been read or timeout expires.\nMay be called with numToRead=0 to retrieve how many words are available.\n\n:param buffer: buffer where read words are stored\n:param numToRead: number of words to read\n:param timeout: timeout (ms resolution)\n\n:returns: Number of words remaining to be read", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "readAutoReceivedData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Resets the accumulator to zero.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "resetAccumulator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "center", "type": "int"}], "tooltip": "Set the center value of the accumulator.\n\nThe center value is subtracted from each value before it is added to the\naccumulator. This is used for the center value of devices like gyros and\naccelerometers to make integration work and to take the device offset into\naccount when integrating.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setAccumulatorCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "deadband", "type": "int"}], "tooltip": "Set the accumulator's deadband.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setAccumulatorDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "center", "type": "float"}], "tooltip": "Set the center value of the accumulator integrator.\n\nThe center value is subtracted from each value*dt before it is added to the\nintegrated value. This is used for the center value of devices like gyros\nand accelerometers to take the device offset into account when integrating.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setAccumulatorIntegratedCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "dataToSend", "type": "Buffer"}, {"name": "zeroSize", "type": "int"}], "tooltip": "Set the data to be transmitted by the engine.\n\nUp to 16 bytes are configurable, and may be followed by up to 127 zero\nbytes.\n\n:param dataToSend: data to send (maximum 16 bytes)\n:param zeroSize: number of zeros to send after the data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setAutoTransmitData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Configure the chip select line to be active high.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setChipSelectActiveHigh"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Configure the chip select line to be active low.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setChipSelectActiveLow"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "hz", "type": "int"}], "tooltip": "Configure the rate of the generated clock signal.\n\nThe default value is 500,000Hz.\nThe maximum value is 4,000,000Hz.\n\n:param hz: The clock rate in Hertz.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setClockRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "mode", "type": "wpilib._wpilib.SPI.Mode"}], "tooltip": "Sets the mode for the SPI device.\n\nMode 0 is Clock idle low, data sampled on rising edge\n\nMode 1 is Clock idle low, data sampled on falling edge\n\nMode 2 is Clock idle high, data sampled on falling edge\n\nMode 3 is Clock idle high, data sampled on rising edge\n\n:param mode: The mode to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMode"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Start running the automatic SPI transfer engine at a periodic rate.\n\nInitAuto() and SetAutoTransmitData() must be called before calling this\nfunction.\n\n:param period: period between transfers (us resolution)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "startAutoRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "source", "type": "wpilib._wpilib.DigitalSource"}, {"name": "rising", "type": "bool"}, {"name": "falling", "type": "bool"}], "tooltip": "Start running the automatic SPI transfer engine when a trigger occurs.\n\nInitAuto() and SetAutoTransmitData() must be called before calling this\nfunction.\n\n:param source: digital source for the trigger (may be an analog trigger)\n:param rising: trigger on the rising edge\n:param falling: trigger on the falling edge", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "startAutoTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}], "tooltip": "Stop running the automatic SPI transfer engine.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "stopAuto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "dataToSend", "type": "Buffer"}, {"name": "dataReceived", "type": "Buffer"}], "tooltip": "Perform a simultaneous read/write transaction with the device\n\n:param dataToSend: The data to be written out to the device\n:param dataReceived: Buffer to receive data from the device\n:param size: The length of the transaction, in bytes", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "transaction"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib._wpilib.SPI"}, {"name": "data", "type": "Buffer"}], "tooltip": "Write data to the peripheral device. Blocks until there is space in the\noutput FIFO.\n\nIf not running in output only mode, also saves the data received\non the CIPO input during the transfer into the receive FIFO.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "write"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySPI"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.SPI", "args": [{"name": "port", "type": "wpilib.SPI.Port"}], "tooltip": "Constructor\n\n:param port: the physical SPI port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "port", "type": "hal.SPIPort"}, {"name": "csToSclkTicks", "type": "int"}, {"name": "stallTicks", "type": "int"}, {"name": "pow2BytesPerRead", "type": "int"}], "tooltip": "Configure the Auto SPI Stall time between reads.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP.\n:param csToSclkTicks: the number of ticks to wait before asserting the cs\n pin\n:param stallTicks: the number of ticks to stall for\n:param pow2BytesPerRead: the number of bytes to read before stalling", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "configureAutoStall"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Force the engine to make a single transfer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "forceAutoRead"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Frees the accumulator.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "freeAccumulator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Frees the automatic SPI transfer engine.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "freeAuto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Read the average of the accumulated value.\n\n:returns: The accumulated average value (value / count).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Read the number of accumulated values.\n\nRead the count of the accumulated values since the accumulator was last\nReset().\n\n:returns: The number of times samples from the channel were accumulated.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Read the average of the integrated value. This is the sum of (each value\ntimes the time between values), divided by the count.\n\n:returns: The average of the integrated value accumulated since the last\n Reset().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorIntegratedAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Read the integrated value. This is the sum of (each value * time between\nvalues).\n\n:returns: The integrated value accumulated since the last Reset().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorIntegratedValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Read the last value read by the accumulator engine.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorLastValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[int, int]", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Read the accumulated value and the number of accumulated values atomically.\n\nThis function reads the value and count atomically.\nThis can be used for averaging.\n\n:param value: Pointer to the 64-bit accumulated output.\n:param count: Pointer to the number of accumulation cycles.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Read the accumulated value.\n\n:returns: The 64-bit value accumulated since the last Reset().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAccumulatorValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Get the number of bytes dropped by the automatic SPI transfer engine due\nto the receive buffer being full.\n\n:returns: Number of bytes dropped", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getAutoDroppedCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.SPI.Port", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Returns the SPI port.\n\n:returns: The SPI port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "period", "type": "wpimath.units.seconds"}, {"name": "cmd", "type": "int"}, {"name": "xferSize", "type": "int"}, {"name": "validMask", "type": "int"}, {"name": "validValue", "type": "int"}, {"name": "dataShift", "type": "int"}, {"name": "dataSize", "type": "int"}, {"name": "isSigned", "type": "bool"}, {"name": "bigEndian", "type": "bool"}], "tooltip": "Initialize the accumulator.\n\n:param period: Time between reads\n:param cmd: SPI command to send to request data\n:param xferSize: SPI transfer size, in bytes\n:param validMask: Mask to apply to received data for validity checking\n:param validValue: After valid_mask is applied, required matching value for\n validity checking\n:param dataShift: Bit shift to apply to received data to get actual data\n value\n:param dataSize: Size (in bits) of data field\n:param isSigned: Is data field signed?\n:param bigEndian: Is device big endian?", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "initAccumulator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "bufferSize", "type": "int"}], "tooltip": "Initialize automatic SPI transfer engine.\n\nOnly a single engine is available, and use of it blocks use of all other\nchip select usage on the same physical SPI port while it is running.\n\n:param bufferSize: buffer size in bytes", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "initAuto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "initiate", "type": "bool"}, {"name": "dataReceived", "type": "Buffer"}], "tooltip": "Read a word from the receive FIFO.\n\nWaits for the current transfer to complete if the receive FIFO is empty.\n\nIf the receive FIFO is empty, there is no active transfer, and initiate\nis false, errors.\n\n:param initiate: If true, this function pushes \"0\" into the transmit\n buffer and initiates a transfer. If false, this\n function assumes that data is already in the receive\n FIFO from a previous write.\n:param dataReceived: Buffer to receive data from the device\n:param size: The length of the transaction, in bytes", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "read"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "buffer", "type": "Buffer"}, {"name": "timeout", "type": "wpimath.units.seconds"}], "tooltip": "Read data that has been transferred by the automatic SPI transfer engine.\n\nTransfers may be made a byte at a time, so it's necessary for the caller\nto handle cases where an entire transfer has not been completed.\n\nEach received data sequence consists of a timestamp followed by the\nreceived data bytes, one byte per word (in the least significant byte).\nThe length of each received data sequence is the same as the combined\nsize of the data and zeroSize set in SetAutoTransmitData().\n\nBlocks until numToRead words have been read or timeout expires.\nMay be called with numToRead=0 to retrieve how many words are available.\n\n:param buffer: buffer where read words are stored\n:param numToRead: number of words to read\n:param timeout: timeout (ms resolution)\n\n:returns: Number of words remaining to be read", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "readAutoReceivedData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Resets the accumulator to zero.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "resetAccumulator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "center", "type": "int"}], "tooltip": "Set the center value of the accumulator.\n\nThe center value is subtracted from each value before it is added to the\naccumulator. This is used for the center value of devices like gyros and\naccelerometers to make integration work and to take the device offset into\naccount when integrating.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setAccumulatorCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "deadband", "type": "int"}], "tooltip": "Set the accumulator's deadband.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setAccumulatorDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "center", "type": "float"}], "tooltip": "Set the center value of the accumulator integrator.\n\nThe center value is subtracted from each value*dt before it is added to the\nintegrated value. This is used for the center value of devices like gyros\nand accelerometers to take the device offset into account when integrating.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setAccumulatorIntegratedCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "dataToSend", "type": "Buffer"}, {"name": "zeroSize", "type": "int"}], "tooltip": "Set the data to be transmitted by the engine.\n\nUp to 16 bytes are configurable, and may be followed by up to 127 zero\nbytes.\n\n:param dataToSend: data to send (maximum 16 bytes)\n:param zeroSize: number of zeros to send after the data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setAutoTransmitData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Configure the chip select line to be active high.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setChipSelectActiveHigh"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Configure the chip select line to be active low.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setChipSelectActiveLow"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "hz", "type": "int"}], "tooltip": "Configure the rate of the generated clock signal.\n\nThe default value is 500,000Hz.\nThe maximum value is 4,000,000Hz.\n\n:param hz: The clock rate in Hertz.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setClockRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "mode", "type": "wpilib.SPI.Mode"}], "tooltip": "Sets the mode for the SPI device.\n\nMode 0 is Clock idle low, data sampled on rising edge\n\nMode 1 is Clock idle low, data sampled on falling edge\n\nMode 2 is Clock idle high, data sampled on falling edge\n\nMode 3 is Clock idle high, data sampled on rising edge\n\n:param mode: The mode to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "setMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMode"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Start running the automatic SPI transfer engine at a periodic rate.\n\nInitAuto() and SetAutoTransmitData() must be called before calling this\nfunction.\n\n:param period: period between transfers (us resolution)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "startAutoRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "source", "type": "wpilib.DigitalSource"}, {"name": "rising", "type": "bool"}, {"name": "falling", "type": "bool"}], "tooltip": "Start running the automatic SPI transfer engine when a trigger occurs.\n\nInitAuto() and SetAutoTransmitData() must be called before calling this\nfunction.\n\n:param source: digital source for the trigger (may be an analog trigger)\n:param rising: trigger on the rising edge\n:param falling: trigger on the falling edge", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "startAutoTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPI", "type": "wpilib.SPI"}], "tooltip": "Stop running the automatic SPI transfer engine.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "stopAuto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "dataToSend", "type": "Buffer"}, {"name": "dataReceived", "type": "Buffer"}], "tooltip": "Perform a simultaneous read/write transaction with the device\n\n:param dataToSend: The data to be written out to the device\n:param dataReceived: Buffer to receive data from the device\n:param size: The length of the transaction, in bytes", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "transaction"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPI", "type": "wpilib.SPI"}, {"name": "data", "type": "Buffer"}], "tooltip": "Write data to the peripheral device. Blocks until there is space in the\noutput FIFO.\n\nIf not running in output only mode, also saves the data received\non the CIPO input during the transfer into the receive FIFO.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SPI", "FUNC": "write"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPI"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.SPI.Mode", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.SPI.Mode", "ENUM_VALUE": "kMode0"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.SPI.Mode", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.SPI.Mode", "ENUM_VALUE": "kMode1"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.SPI.Mode", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.SPI.Mode", "ENUM_VALUE": "kMode2"}},
diff --git a/src/blocks/generated/class_wpilib.SendableBuilderImpl.ts b/src/blocks/generated/class_wpilib.SendableBuilderImpl.ts
index 279e69d9..022da654 100644
--- a/src/blocks/generated/class_wpilib.SendableBuilderImpl.ts
+++ b/src/blocks/generated/class_wpilib.SendableBuilderImpl.ts
@@ -11,52 +11,52 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 46 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.SendableBuilderImpl", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], list[int]]"}, {"name": "setter", "type": "Callable[[List[int]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addBooleanArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], bool]"}, {"name": "setter", "type": "Callable[[bool], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addBooleanProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], list[float]]"}, {"name": "setter", "type": "Callable[[List[float]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addDoubleArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], float]"}, {"name": "setter", "type": "Callable[[float], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addDoubleProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], list[float]]"}, {"name": "setter", "type": "Callable[[List[float]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addFloatArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], float]"}, {"name": "setter", "type": "Callable[[float], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addFloatProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], list[int]]"}, {"name": "setter", "type": "Callable[[List[int]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addIntegerArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], int]"}, {"name": "setter", "type": "Callable[[int], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addIntegerProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "typeString", "type": "str"}, {"name": "getter", "type": "Callable[[], list[int]]"}, {"name": "setter", "type": "Callable[[Buffer], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addRawProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[List[int]], List[int]]"}, {"name": "setter", "type": "Callable[[List[int]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallBooleanArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[List[float]], List[float]]"}, {"name": "setter", "type": "Callable[[List[float]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallDoubleArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[List[float]], List[float]]"}, {"name": "setter", "type": "Callable[[List[float]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallFloatArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[List[int]], List[int]]"}, {"name": "setter", "type": "Callable[[List[int]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallIntegerArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "typeString", "type": "str"}, {"name": "getter", "type": "Callable[[List[int]], Buffer]"}, {"name": "setter", "type": "Callable[[Buffer], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallRawProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[List[str]], List[str]]"}, {"name": "setter", "type": "Callable[[List[str]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallStringArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[List[str]], str]"}, {"name": "setter", "type": "Callable[[str], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallStringProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], list[str]]"}, {"name": "setter", "type": "Callable[[List[str]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addStringArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], str]"}, {"name": "setter", "type": "Callable[[str], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addStringProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}], "tooltip": "Clear properties.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "clearProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBackendKind"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpiutil._wpiutil.SendableBuilder.BackendKind", "args": [{"name": "nTSendableBuilder", "type": "ntcore._ntcore.NTSendableBuilder"}], "tooltip": "Gets the kind of backend being used.\n\n:returns: Backend kind", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "ntcore.NTSendableBuilder", "FUNC": "getBackendKind"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNTSendableBuilder"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkTable"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "ntcore._ntcore.NetworkTable", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}], "tooltip": "Get the network table.\n\n:returns: The network table", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "getTable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTopic"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "ntcore._ntcore.Topic", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "getTopic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}], "tooltip": "Return whether this sendable should be treated as an actuator.\n\n:returns: True if actuator, false if not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "isActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}], "tooltip": "Return whether this sendable has an associated table.\n\n:returns: True if it has a table, false if not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "isPublished"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "List[int]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstBooleanArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "List[float]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstDoubleArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstFloat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "List[float]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstFloatArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstInteger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "List[int]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstIntegerArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "typeString", "type": "str"}, {"name": "value", "type": "Buffer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "List[str]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstStringArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "value", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "setActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "func", "type": "Callable[[], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "setSafeState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "setSmartDashboardType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "table", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Set the network table. Must be called prior to any Add* functions being\ncalled.\n\n:param table: Network table", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "setTable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}, {"name": "func", "type": "Callable[[], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "setUpdateTable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}], "tooltip": "Hook setters for all properties.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "startListeners"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}], "tooltip": "Start LiveWindow mode by hooking the setters for all properties. Also\ncalls the SafeState function if one was provided.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "startLiveWindowMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}], "tooltip": "Unhook setters for all properties.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "stopListeners"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}], "tooltip": "Stop LiveWindow mode by unhooking the setters for all properties. Also\ncalls the SafeState function if one was provided.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "stopLiveWindowMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib._wpilib.SendableBuilderImpl"}], "tooltip": "Synchronize with network table values by calling the getters for all\nproperties and setters when the network table value has changed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.SendableBuilderImpl", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], list[int]]"}, {"name": "setter", "type": "Callable[[List[int]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addBooleanArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], bool]"}, {"name": "setter", "type": "Callable[[bool], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addBooleanProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], list[float]]"}, {"name": "setter", "type": "Callable[[List[float]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addDoubleArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], float]"}, {"name": "setter", "type": "Callable[[float], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addDoubleProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], list[float]]"}, {"name": "setter", "type": "Callable[[List[float]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addFloatArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], float]"}, {"name": "setter", "type": "Callable[[float], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addFloatProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], list[int]]"}, {"name": "setter", "type": "Callable[[List[int]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addIntegerArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], int]"}, {"name": "setter", "type": "Callable[[int], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addIntegerProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "typeString", "type": "str"}, {"name": "getter", "type": "Callable[[], list[int]]"}, {"name": "setter", "type": "Callable[[Buffer], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addRawProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[List[int]], List[int]]"}, {"name": "setter", "type": "Callable[[List[int]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallBooleanArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[List[float]], List[float]]"}, {"name": "setter", "type": "Callable[[List[float]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallDoubleArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[List[float]], List[float]]"}, {"name": "setter", "type": "Callable[[List[float]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallFloatArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[List[int]], List[int]]"}, {"name": "setter", "type": "Callable[[List[int]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallIntegerArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "typeString", "type": "str"}, {"name": "getter", "type": "Callable[[List[int]], Buffer]"}, {"name": "setter", "type": "Callable[[Buffer], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallRawProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[List[str]], List[str]]"}, {"name": "setter", "type": "Callable[[List[str]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallStringArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[List[str]], str]"}, {"name": "setter", "type": "Callable[[str], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addSmallStringProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], list[str]]"}, {"name": "setter", "type": "Callable[[List[str]], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addStringArrayProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "getter", "type": "Callable[[], str]"}, {"name": "setter", "type": "Callable[[str], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "addStringProperty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}], "tooltip": "Clear properties.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "clearProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBackendKind"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpiutil.SendableBuilder.BackendKind", "args": [{"name": "nTSendableBuilder", "type": "ntcore.NTSendableBuilder"}], "tooltip": "Gets the kind of backend being used.\n\n:returns: Backend kind", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "ntcore.NTSendableBuilder", "FUNC": "getBackendKind"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNTSendableBuilder"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkTable"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "ntcore.NetworkTable", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}], "tooltip": "Get the network table.\n\n:returns: The network table", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "getTable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTopic"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "ntcore.Topic", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "getTopic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}], "tooltip": "Return whether this sendable should be treated as an actuator.\n\n:returns: True if actuator, false if not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "isActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}], "tooltip": "Return whether this sendable has an associated table.\n\n:returns: True if it has a table, false if not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "isPublished"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "List[int]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstBooleanArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "List[float]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstDoubleArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstFloat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "List[float]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstFloatArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstInteger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "List[int]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstIntegerArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "typeString", "type": "str"}, {"name": "value", "type": "Buffer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "key", "type": "str"}, {"name": "value", "type": "List[str]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "publishConstStringArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "value", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "setActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "func", "type": "Callable[[], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "setSafeState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "setSmartDashboardType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "table", "type": "ntcore.NetworkTable"}], "tooltip": "Set the network table. Must be called prior to any Add* functions being\ncalled.\n\n:param table: Network table", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "setTable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}, {"name": "func", "type": "Callable[[], None]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "setUpdateTable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}], "tooltip": "Hook setters for all properties.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "startListeners"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}], "tooltip": "Start LiveWindow mode by hooking the setters for all properties. Also\ncalls the SafeState function if one was provided.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "startLiveWindowMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}], "tooltip": "Unhook setters for all properties.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "stopListeners"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}], "tooltip": "Stop LiveWindow mode by unhooking the setters for all properties. Also\ncalls the SafeState function if one was provided.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "stopLiveWindowMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableBuilderImpl", "type": "wpilib.SendableBuilderImpl"}], "tooltip": "Synchronize with network table values by calling the getters for all\nproperties and setters when the network table value has changed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableBuilderImpl", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilderImpl"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.SendableChooser.ts b/src/blocks/generated/class_wpilib.SendableChooser.ts
index b6aec6ad..f86c3a0f 100644
--- a/src/blocks/generated/class_wpilib.SendableChooser.ts
+++ b/src/blocks/generated/class_wpilib.SendableChooser.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySendableChooser"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.SendableChooser", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableChooser"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableChooser", "type": "wpilib._wpilib.SendableChooser"}, {"name": "name", "type": "str"}, {"name": "object", "type": "object"}], "tooltip": "Adds the given object to the list of options.\n\nOn the SmartDashboard on the desktop, the object will appear as the given\nname.\n\n:param name: the name of the option\n:param object: the option", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableChooser", "FUNC": "addOption"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableChooser"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "object", "args": [{"name": "sendableChooser", "type": "wpilib._wpilib.SendableChooser"}], "tooltip": "Returns a copy of the selected option (a std::weak_ptr if T =\nstd::shared_ptr).\n\nIf there is none selected, it will return the default. If there is none\nselected and no default, then it will return a value-initialized instance.\nFor integer types, this is 0. For container types like std::string, this is\nan empty string.\n\n:returns: The option selected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableChooser", "FUNC": "getSelected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableChooser"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableChooser", "type": "wpilib._wpilib.SendableChooser"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableChooser", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableChooser"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableChooser", "type": "wpilib._wpilib.SendableChooser"}, {"name": "listener", "type": "Callable[[object], None]"}], "tooltip": "Bind a listener that's called when the selected value changes.\nOnly one listener can be bound. Calling this function will replace the\nprevious listener.\n\n:param listener: The function to call that accepts the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableChooser", "FUNC": "onChange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableChooser"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableChooser", "type": "wpilib._wpilib.SendableChooser"}, {"name": "name", "type": "str"}, {"name": "object", "type": "object"}], "tooltip": "Add the given object to the list of options and marks it as the default.\n\nFunctionally, this is very close to AddOption() except that it will use\nthis as the default option if none other is explicitly selected.\n\n:param name: the name of the option\n:param object: the option", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableChooser", "FUNC": "setDefaultOption"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableChooser"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySendableChooser"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.SendableChooser", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableChooser"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableChooser", "type": "wpilib.SendableChooser"}, {"name": "name", "type": "str"}, {"name": "object", "type": "object"}], "tooltip": "Adds the given object to the list of options.\n\nOn the SmartDashboard on the desktop, the object will appear as the given\nname.\n\n:param name: the name of the option\n:param object: the option", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableChooser", "FUNC": "addOption"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableChooser"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "object", "args": [{"name": "sendableChooser", "type": "wpilib.SendableChooser"}], "tooltip": "Returns a copy of the selected option (a std::weak_ptr if T =\nstd::shared_ptr).\n\nIf there is none selected, it will return the default. If there is none\nselected and no default, then it will return a value-initialized instance.\nFor integer types, this is 0. For container types like std::string, this is\nan empty string.\n\n:returns: The option selected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableChooser", "FUNC": "getSelected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableChooser"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableChooser", "type": "wpilib.SendableChooser"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableChooser", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableChooser"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableChooser", "type": "wpilib.SendableChooser"}, {"name": "listener", "type": "Callable[[object], None]"}], "tooltip": "Bind a listener that's called when the selected value changes.\nOnly one listener can be bound. Calling this function will replace the\nprevious listener.\n\n:param listener: The function to call that accepts the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableChooser", "FUNC": "onChange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableChooser"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableChooser", "type": "wpilib.SendableChooser"}, {"name": "name", "type": "str"}, {"name": "object", "type": "object"}], "tooltip": "Add the given object to the list of options and marks it as the default.\n\nFunctionally, this is very close to AddOption() except that it will use\nthis as the default option if none other is explicitly selected.\n\n:param name: the name of the option\n:param object: the option", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SendableChooser", "FUNC": "setDefaultOption"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableChooser"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.SendableChooserBase.ts b/src/blocks/generated/class_wpilib.SendableChooserBase.ts
index 36adb07a..428704e2 100644
--- a/src/blocks/generated/class_wpilib.SendableChooserBase.ts
+++ b/src/blocks/generated/class_wpilib.SendableChooserBase.ts
@@ -11,7 +11,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 1 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.SerialPort.ts b/src/blocks/generated/class_wpilib.SerialPort.ts
index 9f11a053..3d9e55bd 100644
--- a/src/blocks/generated/class_wpilib.SerialPort.ts
+++ b/src/blocks/generated/class_wpilib.SerialPort.ts
@@ -17,20 +17,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 33 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySerialPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.SerialPort", "args": [{"name": "baudRate", "type": "int"}, {"name": "port", "type": "wpilib._wpilib.SerialPort.Port"}, {"name": "dataBits", "type": "int"}, {"name": "parity", "type": "wpilib._wpilib.SerialPort.Parity"}, {"name": "stopBits", "type": "wpilib._wpilib.SerialPort.StopBits"}], "tooltip": "Create an instance of a Serial Port class.\n\n:param baudRate: The baud rate to configure the serial port.\n:param port: The physical port to use\n:param dataBits: The number of data bits per transfer. Valid values are\n between 5 and 8 bits.\n:param parity: Select the type of parity checking to use.\n:param stopBits: The number of stop bits to use as defined by the enum\n StopBits.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG2": {"shadow": {"type": "math_number", "fields": {"NUM": 8.0}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myParity"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStopBits"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySerialPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.SerialPort", "args": [{"name": "baudRate", "type": "int"}, {"name": "portName", "type": "str"}, {"name": "port", "type": "wpilib._wpilib.SerialPort.Port"}, {"name": "dataBits", "type": "int"}, {"name": "parity", "type": "wpilib._wpilib.SerialPort.Parity"}, {"name": "stopBits", "type": "wpilib._wpilib.SerialPort.StopBits"}], "tooltip": "Create an instance of a Serial Port class.\n\nPrefer to use the constructor that doesn't take a port name, but in some\ncases the automatic detection might not work correctly.\n\n:param baudRate: The baud rate to configure the serial port.\n:param port: The physical port to use\n:param portName: The direct port name to use\n:param dataBits: The number of data bits per transfer. Valid values are\n between 5 and 8 bits.\n:param parity: Select the type of parity checking to use.\n:param stopBits: The number of stop bits to use as defined by the enum\n StopBits.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG3": {"shadow": {"type": "math_number", "fields": {"NUM": 8.0}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myParity"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStopBits"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib._wpilib.SerialPort"}], "tooltip": "Disable termination behavior.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "disableTermination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib._wpilib.SerialPort"}, {"name": "terminator", "type": "str"}], "tooltip": "Enable termination and specify the termination character.\n\nTermination is currently only implemented for receive.\nWhen the the terminator is received, the Read() or Scanf() will return\nfewer bytes than requested, stopping after the terminator.\n\n:param terminator: The character to use for termination.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "enableTermination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}, "ARG1": {"shadow": {"type": "text", "fields": {"TEXT": "\\n"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib._wpilib.SerialPort"}], "tooltip": "Force the output buffer to be written to the port.\n\nThis is used when SetWriteBufferMode() is set to kFlushWhenFull to force a\nflush before the buffer is full.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "flush"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "serialPort", "type": "wpilib._wpilib.SerialPort"}], "tooltip": "Get the number of bytes currently available to read from the serial port.\n\n:returns: The number of bytes available to read", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "getBytesReceived"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "serialPort", "type": "wpilib._wpilib.SerialPort"}, {"name": "buffer", "type": "Buffer"}], "tooltip": "Read raw bytes out of the buffer.\n\n:param buffer: Pointer to the buffer to store the bytes in.\n:param count: The maximum number of bytes to read.\n\n:returns: The number of bytes actually read into the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "read"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib._wpilib.SerialPort"}], "tooltip": "Reset the serial port driver to a known state.\n\nEmpty the transmit and receive buffers in the device and formatted I/O.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib._wpilib.SerialPort"}, {"name": "flowControl", "type": "wpilib._wpilib.SerialPort.FlowControl"}], "tooltip": "Set the type of flow control to enable on this port.\n\nBy default, flow control is disabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "setFlowControl"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlowControl"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib._wpilib.SerialPort"}, {"name": "size", "type": "int"}], "tooltip": "Specify the size of the input buffer.\n\nSpecify the amount of data that can be stored before data\nfrom the device is returned to Read or Scanf. If you want\ndata that is received to be returned immediately, set this to 1.\n\nIt the buffer is not filled before the read timeout expires, all\ndata that has been received so far will be returned.\n\n:param size: The read buffer size.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "setReadBufferSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib._wpilib.SerialPort"}, {"name": "timeout", "type": "wpimath.units.seconds"}], "tooltip": "Configure the timeout of the serial port.\n\nThis defines the timeout for transactions with the hardware.\nIt will affect reads and very large writes.\n\n:param timeout: The time to wait for I/O.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "setTimeout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib._wpilib.SerialPort"}, {"name": "mode", "type": "wpilib._wpilib.SerialPort.WriteBufferMode"}], "tooltip": "Specify the flushing behavior of the output buffer.\n\nWhen set to kFlushOnAccess, data is synchronously written to the serial\nport after each call to either Printf() or Write().\n\nWhen set to kFlushWhenFull, data will only be written to the serial port\nwhen the buffer is full or when Flush() is called.\n\n:param mode: The write buffer mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "setWriteBufferMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWriteBufferMode"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib._wpilib.SerialPort"}, {"name": "size", "type": "int"}], "tooltip": "Specify the size of the output buffer.\n\nSpecify the amount of data that can be stored before being\ntransmitted to the device.\n\n:param size: The write buffer size.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "setWriteBufferSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "serialPort", "type": "wpilib._wpilib.SerialPort"}, {"name": "buffer", "type": "Buffer"}], "tooltip": "Write raw bytes to the buffer.\n\n:param buffer: Pointer to the buffer to read the bytes from.\n:param count: The maximum number of bytes to write.\n\n:returns: The number of bytes actually written into the port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "write"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySerialPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.SerialPort", "args": [{"name": "baudRate", "type": "int"}, {"name": "port", "type": "wpilib.SerialPort.Port"}, {"name": "dataBits", "type": "int"}, {"name": "parity", "type": "wpilib.SerialPort.Parity"}, {"name": "stopBits", "type": "wpilib.SerialPort.StopBits"}], "tooltip": "Create an instance of a Serial Port class.\n\n:param baudRate: The baud rate to configure the serial port.\n:param port: The physical port to use\n:param dataBits: The number of data bits per transfer. Valid values are\n between 5 and 8 bits.\n:param parity: Select the type of parity checking to use.\n:param stopBits: The number of stop bits to use as defined by the enum\n StopBits.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG2": {"shadow": {"type": "math_number", "fields": {"NUM": 8.0}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myParity"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStopBits"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySerialPort"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.SerialPort", "args": [{"name": "baudRate", "type": "int"}, {"name": "portName", "type": "str"}, {"name": "port", "type": "wpilib.SerialPort.Port"}, {"name": "dataBits", "type": "int"}, {"name": "parity", "type": "wpilib.SerialPort.Parity"}, {"name": "stopBits", "type": "wpilib.SerialPort.StopBits"}], "tooltip": "Create an instance of a Serial Port class.\n\nPrefer to use the constructor that doesn't take a port name, but in some\ncases the automatic detection might not work correctly.\n\n:param baudRate: The baud rate to configure the serial port.\n:param port: The physical port to use\n:param portName: The direct port name to use\n:param dataBits: The number of data bits per transfer. Valid values are\n between 5 and 8 bits.\n:param parity: Select the type of parity checking to use.\n:param stopBits: The number of stop bits to use as defined by the enum\n StopBits.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPort"}}}}, "ARG3": {"shadow": {"type": "math_number", "fields": {"NUM": 8.0}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myParity"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStopBits"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib.SerialPort"}], "tooltip": "Disable termination behavior.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "disableTermination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib.SerialPort"}, {"name": "terminator", "type": "str"}], "tooltip": "Enable termination and specify the termination character.\n\nTermination is currently only implemented for receive.\nWhen the the terminator is received, the Read() or Scanf() will return\nfewer bytes than requested, stopping after the terminator.\n\n:param terminator: The character to use for termination.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "enableTermination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}, "ARG1": {"shadow": {"type": "text", "fields": {"TEXT": "\\n"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib.SerialPort"}], "tooltip": "Force the output buffer to be written to the port.\n\nThis is used when SetWriteBufferMode() is set to kFlushWhenFull to force a\nflush before the buffer is full.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "flush"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "serialPort", "type": "wpilib.SerialPort"}], "tooltip": "Get the number of bytes currently available to read from the serial port.\n\n:returns: The number of bytes available to read", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "getBytesReceived"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "serialPort", "type": "wpilib.SerialPort"}, {"name": "buffer", "type": "Buffer"}], "tooltip": "Read raw bytes out of the buffer.\n\n:param buffer: Pointer to the buffer to store the bytes in.\n:param count: The maximum number of bytes to read.\n\n:returns: The number of bytes actually read into the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "read"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib.SerialPort"}], "tooltip": "Reset the serial port driver to a known state.\n\nEmpty the transmit and receive buffers in the device and formatted I/O.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib.SerialPort"}, {"name": "flowControl", "type": "wpilib.SerialPort.FlowControl"}], "tooltip": "Set the type of flow control to enable on this port.\n\nBy default, flow control is disabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "setFlowControl"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlowControl"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib.SerialPort"}, {"name": "size", "type": "int"}], "tooltip": "Specify the size of the input buffer.\n\nSpecify the amount of data that can be stored before data\nfrom the device is returned to Read or Scanf. If you want\ndata that is received to be returned immediately, set this to 1.\n\nIt the buffer is not filled before the read timeout expires, all\ndata that has been received so far will be returned.\n\n:param size: The read buffer size.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "setReadBufferSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib.SerialPort"}, {"name": "timeout", "type": "wpimath.units.seconds"}], "tooltip": "Configure the timeout of the serial port.\n\nThis defines the timeout for transactions with the hardware.\nIt will affect reads and very large writes.\n\n:param timeout: The time to wait for I/O.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "setTimeout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib.SerialPort"}, {"name": "mode", "type": "wpilib.SerialPort.WriteBufferMode"}], "tooltip": "Specify the flushing behavior of the output buffer.\n\nWhen set to kFlushOnAccess, data is synchronously written to the serial\nport after each call to either Printf() or Write().\n\nWhen set to kFlushWhenFull, data will only be written to the serial port\nwhen the buffer is full or when Flush() is called.\n\n:param mode: The write buffer mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "setWriteBufferMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWriteBufferMode"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "serialPort", "type": "wpilib.SerialPort"}, {"name": "size", "type": "int"}], "tooltip": "Specify the size of the output buffer.\n\nSpecify the amount of data that can be stored before being\ntransmitted to the device.\n\n:param size: The write buffer size.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "setWriteBufferSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "serialPort", "type": "wpilib.SerialPort"}, {"name": "buffer", "type": "Buffer"}], "tooltip": "Write raw bytes to the buffer.\n\n:param buffer: Pointer to the buffer to read the bytes from.\n:param count: The maximum number of bytes to write.\n\n:returns: The number of bytes actually written into the port.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SerialPort", "FUNC": "write"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.SerialPort.FlowControl", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.SerialPort.FlowControl", "ENUM_VALUE": "kFlowControl_DtrDsr"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.SerialPort.FlowControl", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.SerialPort.FlowControl", "ENUM_VALUE": "kFlowControl_None"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.SerialPort.FlowControl", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.SerialPort.FlowControl", "ENUM_VALUE": "kFlowControl_RtsCts"}},
diff --git a/src/blocks/generated/class_wpilib.Servo.ts b/src/blocks/generated/class_wpilib.Servo.ts
index 84e3d1c9..c6b984cc 100644
--- a/src/blocks/generated/class_wpilib.Servo.ts
+++ b/src/blocks/generated/class_wpilib.Servo.ts
@@ -11,29 +11,29 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 23 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myServo"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Servo", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor.\n\nBy default, 2.4 ms is used as the max PWM value and 0.6 ms is used as the\nmin PWM value.\n\n:param channel: The PWM channel to which the servo is attached. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "servo", "type": "wpilib._wpilib.Servo"}], "tooltip": "Get the servo position.\n\nServo values range from 0.0 to 1.0 corresponding to the range of full left\nto full right. This returns the commanded position, not the position that\nthe servo is actually at, as the servo does not report its own position.\n\n:returns: Position from 0.0 to 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "servo", "type": "wpilib._wpilib.Servo"}], "tooltip": "Get the servo angle.\n\nThis returns the commanded angle, not the angle that the servo is actually\nat, as the servo does not report its own angle.\n\n:returns: The angle in degrees to which the servo is set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "max", "type": "wpimath.units.microseconds"}, {"name": "deadbandMax", "type": "wpimath.units.microseconds"}, {"name": "center", "type": "wpimath.units.microseconds"}, {"name": "deadbandMin", "type": "wpimath.units.microseconds"}, {"name": "min", "type": "wpimath.units.microseconds"}], "tooltip": "Get the bounds on the PWM values.\n\nThis gets the bounds on the PWM values for a particular each type of\ncontroller. The values determine the upper and lower speeds as well as the\ndeadband bracket.\n\n:param max: The maximum pwm value\n:param deadbandMax: The high end of the deadband range\n:param center: The center speed (off)\n:param deadbandMin: The low end of the deadband range\n:param min: The minimum pwm value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getBounds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "servo", "type": "wpilib._wpilib.Servo"}], "tooltip": "Get the maximum angle of the servo.\n\n:returns: The maximum angle of the servo in degrees.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "getMaxAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "servo", "type": "wpilib._wpilib.Servo"}], "tooltip": "Get the minimum angle of the servo.\n\n:returns: The minimum angle of the servo in degrees.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "getMinAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "Get the PWM value in terms of a position.\n\nThis is intended to be used by servos.\n\n@pre SetBounds() called.\n\n:returns: The position the servo is set to between 0.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.microseconds", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "Get the PWM pulse time directly from the hardware.\n\nRead a microsecond value from a PWM channel.\n\n:returns: Microsecond PWM control value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getPulseTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "Get the PWM value in terms of speed.\n\nThis is intended to be used by motor controllers.\n\n@pre SetBounds() called.\n\n:returns: The most recently set speed between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "servo", "type": "wpilib._wpilib.Servo"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "servo", "type": "wpilib._wpilib.Servo"}, {"name": "value", "type": "float"}], "tooltip": "Set the servo position.\n\nServo values range from 0.0 to 1.0 corresponding to the range of full left\nto full right.\n\n:param value: Position from 0.0 to 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "Sets the PWM output to be a continuous high signal while enabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setAlwaysHighMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "servo", "type": "wpilib._wpilib.Servo"}, {"name": "angle", "type": "float"}], "tooltip": "Set the servo angle.\n\nThe angles are based on the HS-322HD Servo, and have a range of 0 to 180\ndegrees.\n\nServo angles that are out of the supported range of the servo simply\n\"saturate\" in that direction. In other words, if the servo has a range of\n(X degrees to Y degrees) than angles of less than X result in an angle of\nX being set and angles of more than Y degrees result in an angle of Y being\nset.\n\n:param angle: The angle in degrees to set the servo.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "setAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "max", "type": "wpimath.units.microseconds"}, {"name": "deadbandMax", "type": "wpimath.units.microseconds"}, {"name": "center", "type": "wpimath.units.microseconds"}, {"name": "deadbandMin", "type": "wpimath.units.microseconds"}, {"name": "min", "type": "wpimath.units.microseconds"}], "tooltip": "Set the bounds on the PWM pulse widths.\n\nThis sets the bounds on the PWM values for a particular type of controller.\nThe values determine the upper and lower speeds as well as the deadband\nbracket.\n\n:param max: The max PWM pulse width in us\n:param deadbandMax: The high end of the deadband range pulse width in us\n:param center: The center (off) pulse width in us\n:param deadbandMin: The low end of the deadband pulse width in us\n:param min: The minimum pulse width in us", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setBounds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "Temporarily disables the PWM output. The next set call will re-enable\nthe output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "servo", "type": "wpilib._wpilib.Servo"}], "tooltip": "Set the servo to offline.\n\nSet the servo raw value to 0 (undriven)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "setOffline"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "mult", "type": "wpilib._wpilib.PWM.PeriodMultiplier"}], "tooltip": "Slow down the PWM signal for old devices.\n\n:param mult: The period multiplier to apply to this channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setPeriodMultiplier"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPeriodMultiplier"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "pos", "type": "float"}], "tooltip": "Set the PWM value based on a position.\n\nThis is intended to be used by servos.\n\n@pre SetBounds() called.\n\n:param pos: The position to set the servo between 0.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "time", "type": "wpimath.units.microseconds"}], "tooltip": "Set the PWM pulse time directly to the hardware.\n\nWrite a microsecond value to a PWM channel.\n\n:param time: Microsecond PWM value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setPulseTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}, {"name": "speed", "type": "float"}], "tooltip": "Set the PWM value based on a speed.\n\nThis is intended to be used by motor controllers.\n\n@pre SetBounds() called.\n\n:param speed: The speed to set the motor controller between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib._wpilib.PWM"}], "tooltip": "Latches PWM to zero.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setZeroLatch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myServo"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Servo", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor.\n\nBy default, 2.4 ms is used as the max PWM value and 0.6 ms is used as the\nmin PWM value.\n\n:param channel: The PWM channel to which the servo is attached. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "servo", "type": "wpilib.Servo"}], "tooltip": "Get the servo position.\n\nServo values range from 0.0 to 1.0 corresponding to the range of full left\nto full right. This returns the commanded position, not the position that\nthe servo is actually at, as the servo does not report its own position.\n\n:returns: Position from 0.0 to 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "servo", "type": "wpilib.Servo"}], "tooltip": "Get the servo angle.\n\nThis returns the commanded angle, not the angle that the servo is actually\nat, as the servo does not report its own angle.\n\n:returns: The angle in degrees to which the servo is set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "max", "type": "wpimath.units.microseconds"}, {"name": "deadbandMax", "type": "wpimath.units.microseconds"}, {"name": "center", "type": "wpimath.units.microseconds"}, {"name": "deadbandMin", "type": "wpimath.units.microseconds"}, {"name": "min", "type": "wpimath.units.microseconds"}], "tooltip": "Get the bounds on the PWM values.\n\nThis gets the bounds on the PWM values for a particular each type of\ncontroller. The values determine the upper and lower speeds as well as the\ndeadband bracket.\n\n:param max: The maximum pwm value\n:param deadbandMax: The high end of the deadband range\n:param center: The center speed (off)\n:param deadbandMin: The low end of the deadband range\n:param min: The minimum pwm value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getBounds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "servo", "type": "wpilib.Servo"}], "tooltip": "Get the maximum angle of the servo.\n\n:returns: The maximum angle of the servo in degrees.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "getMaxAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "servo", "type": "wpilib.Servo"}], "tooltip": "Get the minimum angle of the servo.\n\n:returns: The minimum angle of the servo in degrees.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "getMinAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "Get the PWM value in terms of a position.\n\nThis is intended to be used by servos.\n\n@pre SetBounds() called.\n\n:returns: The position the servo is set to between 0.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.microseconds", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "Get the PWM pulse time directly from the hardware.\n\nRead a microsecond value from a PWM channel.\n\n:returns: Microsecond PWM control value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getPulseTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "Get the PWM value in terms of speed.\n\nThis is intended to be used by motor controllers.\n\n@pre SetBounds() called.\n\n:returns: The most recently set speed between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "getSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "servo", "type": "wpilib.Servo"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "servo", "type": "wpilib.Servo"}, {"name": "value", "type": "float"}], "tooltip": "Set the servo position.\n\nServo values range from 0.0 to 1.0 corresponding to the range of full left\nto full right.\n\n:param value: Position from 0.0 to 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "Sets the PWM output to be a continuous high signal while enabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setAlwaysHighMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "servo", "type": "wpilib.Servo"}, {"name": "angle", "type": "float"}], "tooltip": "Set the servo angle.\n\nThe angles are based on the HS-322HD Servo, and have a range of 0 to 180\ndegrees.\n\nServo angles that are out of the supported range of the servo simply\n\"saturate\" in that direction. In other words, if the servo has a range of\n(X degrees to Y degrees) than angles of less than X result in an angle of\nX being set and angles of more than Y degrees result in an angle of Y being\nset.\n\n:param angle: The angle in degrees to set the servo.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "setAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "max", "type": "wpimath.units.microseconds"}, {"name": "deadbandMax", "type": "wpimath.units.microseconds"}, {"name": "center", "type": "wpimath.units.microseconds"}, {"name": "deadbandMin", "type": "wpimath.units.microseconds"}, {"name": "min", "type": "wpimath.units.microseconds"}], "tooltip": "Set the bounds on the PWM pulse widths.\n\nThis sets the bounds on the PWM values for a particular type of controller.\nThe values determine the upper and lower speeds as well as the deadband\nbracket.\n\n:param max: The max PWM pulse width in us\n:param deadbandMax: The high end of the deadband range pulse width in us\n:param center: The center (off) pulse width in us\n:param deadbandMin: The low end of the deadband pulse width in us\n:param min: The minimum pulse width in us", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setBounds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "Temporarily disables the PWM output. The next set call will re-enable\nthe output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "servo", "type": "wpilib.Servo"}], "tooltip": "Set the servo to offline.\n\nSet the servo raw value to 0 (undriven)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Servo", "FUNC": "setOffline"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myServo"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "mult", "type": "wpilib.PWM.PeriodMultiplier"}], "tooltip": "Slow down the PWM signal for old devices.\n\n:param mult: The period multiplier to apply to this channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setPeriodMultiplier"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPeriodMultiplier"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "pos", "type": "float"}], "tooltip": "Set the PWM value based on a position.\n\nThis is intended to be used by servos.\n\n@pre SetBounds() called.\n\n:param pos: The position to set the servo between 0.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "time", "type": "wpimath.units.microseconds"}], "tooltip": "Set the PWM pulse time directly to the hardware.\n\nWrite a microsecond value to a PWM channel.\n\n:param time: Microsecond PWM value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setPulseTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}, {"name": "speed", "type": "float"}], "tooltip": "Set the PWM value based on a speed.\n\nThis is intended to be used by motor controllers.\n\n@pre SetBounds() called.\n\n:param speed: The speed to set the motor controller between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWM", "type": "wpilib.PWM"}], "tooltip": "Latches PWM to zero.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWM", "FUNC": "setZeroLatch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.SharpIR.ts b/src/blocks/generated/class_wpilib.SharpIR.ts
index ed94addc..42cfab3b 100644
--- a/src/blocks/generated/class_wpilib.SharpIR.ts
+++ b/src/blocks/generated/class_wpilib.SharpIR.ts
@@ -11,14 +11,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 8 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIR"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.SharpIR", "args": [{"name": "channel", "type": "int"}, {"name": "a", "type": "float"}, {"name": "b", "type": "float"}, {"name": "minCM", "type": "float"}, {"name": "maxCM", "type": "float"}], "tooltip": "Manually construct a SharpIR object. The distance is computed using this\nformula: A*v ^ B. Prefer to use one of the static factories to create this\ndevice instead.\n\n:param channel: Analog input channel the sensor is connected to\n:param a: Constant A\n:param b: Constant B\n:param minCM: Minimum distance to report in centimeters\n:param maxCM: Maximum distance to report in centimeters", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIR"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.SharpIR", "args": [{"name": "channel", "type": "int"}], "tooltip": "Sharp GP2Y0A02YK0F is an analog IR sensor capable of measuring\ndistances from 20cm to 150cm.\n\n:param channel: Analog input channel the sensor is connected to\n\n:returns: sensor object", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "GP2Y0A02YK0F"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIR"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.SharpIR", "args": [{"name": "channel", "type": "int"}], "tooltip": "Sharp GP2Y0A21YK0F is an analog IR sensor capable of measuring\ndistances from 10cm to 80cm.\n\n:param channel: Analog input channel the sensor is connected to\n\n:returns: sensor object", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "GP2Y0A21YK0F"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIR"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.SharpIR", "args": [{"name": "channel", "type": "int"}], "tooltip": "Sharp GP2Y0A41SK0F is an analog IR sensor capable of measuring\ndistances from 4cm to 30cm.\n\n:param channel: Analog input channel the sensor is connected to\n\n:returns: sensor object", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "GP2Y0A41SK0F"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIR"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.SharpIR", "args": [{"name": "channel", "type": "int"}], "tooltip": "Sharp GP2Y0A51SK0F is an analog IR sensor capable of measuring\ndistances from 2cm to 15cm.\n\n:param channel: Analog input channel the sensor is connected to\n\n:returns: sensor object", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "GP2Y0A51SK0F"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sharpIR", "type": "wpilib._wpilib.SharpIR"}], "tooltip": "Get the analog input channel number.\n\n:returns: analog input channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySharpIR"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.centimeters", "args": [{"name": "sharpIR", "type": "wpilib._wpilib.SharpIR"}], "tooltip": "Get the range from the distance sensor.\n\n:returns: range of the target returned by the sensor", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "getRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySharpIR"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sharpIR", "type": "wpilib._wpilib.SharpIR"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySharpIR"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIR"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.SharpIR", "args": [{"name": "channel", "type": "int"}, {"name": "a", "type": "float"}, {"name": "b", "type": "float"}, {"name": "minCM", "type": "float"}, {"name": "maxCM", "type": "float"}], "tooltip": "Manually construct a SharpIR object. The distance is computed using this\nformula: A*v ^ B. Prefer to use one of the static factories to create this\ndevice instead.\n\n:param channel: Analog input channel the sensor is connected to\n:param a: Constant A\n:param b: Constant B\n:param minCM: Minimum distance to report in centimeters\n:param maxCM: Maximum distance to report in centimeters", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIR"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.SharpIR", "args": [{"name": "channel", "type": "int"}], "tooltip": "Sharp GP2Y0A02YK0F is an analog IR sensor capable of measuring\ndistances from 20cm to 150cm.\n\n:param channel: Analog input channel the sensor is connected to\n\n:returns: sensor object", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "GP2Y0A02YK0F"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIR"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.SharpIR", "args": [{"name": "channel", "type": "int"}], "tooltip": "Sharp GP2Y0A21YK0F is an analog IR sensor capable of measuring\ndistances from 10cm to 80cm.\n\n:param channel: Analog input channel the sensor is connected to\n\n:returns: sensor object", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "GP2Y0A21YK0F"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIR"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.SharpIR", "args": [{"name": "channel", "type": "int"}], "tooltip": "Sharp GP2Y0A41SK0F is an analog IR sensor capable of measuring\ndistances from 4cm to 30cm.\n\n:param channel: Analog input channel the sensor is connected to\n\n:returns: sensor object", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "GP2Y0A41SK0F"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIR"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.SharpIR", "args": [{"name": "channel", "type": "int"}], "tooltip": "Sharp GP2Y0A51SK0F is an analog IR sensor capable of measuring\ndistances from 2cm to 15cm.\n\n:param channel: Analog input channel the sensor is connected to\n\n:returns: sensor object", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "GP2Y0A51SK0F"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sharpIR", "type": "wpilib.SharpIR"}], "tooltip": "Get the analog input channel number.\n\n:returns: analog input channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySharpIR"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.centimeters", "args": [{"name": "sharpIR", "type": "wpilib.SharpIR"}], "tooltip": "Get the range from the distance sensor.\n\n:returns: range of the target returned by the sensor", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "getRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySharpIR"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sharpIR", "type": "wpilib.SharpIR"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SharpIR", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySharpIR"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.SmartDashboard.ts b/src/blocks/generated/class_wpilib.SmartDashboard.ts
index 1273c1ac..05020b5a 100644
--- a/src/blocks/generated/class_wpilib.SmartDashboard.ts
+++ b/src/blocks/generated/class_wpilib.SmartDashboard.ts
@@ -15,36 +15,36 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}], "tooltip": "Determines whether the given key is in this table.\n\n:param key: the key to search for\n\n:returns: true if the table as a value assigned to the given key", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "containsKey"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "object", "args": [{"name": "keyName", "type": "str"}, {"name": "defaultValue", "type": "object"}], "tooltip": "Returns the value at the specified key.\n\nIf the key is not found, returns the default value.\n\n:param keyName: the key\n:param defaultValue: the default value to return if key doesn't exist\n\n:returns: the value", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getBoolean"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "object", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "object"}], "tooltip": "Returns the boolean array the key maps to.\n\nIf the key does not exist or is of different type, it will return the\ndefault value.\n\n:param key: The key to look up.\n:param defaultValue: The value to be returned if no value is found.\n\n:returns: the value associated with the given key or the given default value\n if there is no value associated with the key\n \n .. note:: This makes a copy of the array. If the overhead of this is a concern,\n use GetValue() instead.\n \n .. note:: The returned array is std::vector instead of std::vector\n because std::vector is special-cased in C++. 0 is false, any\n non-zero value is true.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getBooleanArray"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySendable"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpiutil._wpiutil.Sendable", "args": [{"name": "keyName", "type": "str"}], "tooltip": "Returns the value at the specified key.\n\n:param keyName: the key\n\n:returns: the value", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getData"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkTableEntry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "ntcore._ntcore.NetworkTableEntry", "args": [{"name": "key", "type": "str"}], "tooltip": "Returns an NT Entry mapping to the specified key\n\nThis is useful if an entry is used often, or is read and then modified.\n\n:param key: the key\n\n:returns: the entry for the key", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getEntry"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySendable"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpiutil.Sendable", "args": [{"name": "keyName", "type": "str"}], "tooltip": "Returns the value at the specified key.\n\n:param keyName: the key\n\n:returns: the value", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getData"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkTableEntry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "ntcore.NetworkTableEntry", "args": [{"name": "key", "type": "str"}], "tooltip": "Returns an NT Entry mapping to the specified key\n\nThis is useful if an entry is used often, or is read and then modified.\n\n:param key: the key\n\n:returns: the entry for the key", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getEntry"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[str]", "args": [{"name": "types", "type": "int"}], "tooltip": ":param types: bitmask of types; 0 is treated as a \"don't care\".\n\n:returns: keys currently in the table", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getKeys"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "object", "args": [{"name": "keyName", "type": "str"}, {"name": "defaultValue", "type": "object"}], "tooltip": "Returns the value at the specified key.\n\nIf the key is not found, returns the default value.\n\n:param keyName: the key\n:param defaultValue: the default value to return if the key doesn't exist\n\n:returns: the value", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "object", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "object"}], "tooltip": "Returns the number array the key maps to.\n\nIf the key does not exist or is of different type, it will return the\ndefault value.\n\n:param key: The key to look up.\n:param defaultValue: The value to be returned if no value is found.\n\n:returns: the value associated with the given key or the given default value\n if there is no value associated with the key\n \n .. note:: This makes a copy of the array. If the overhead of this is a concern,\n use GetValue() instead.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getNumberArray"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "object", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "object"}], "tooltip": "Returns the raw value (byte array) the key maps to.\n\nIf the key does not exist or is of different type, it will return the\ndefault value.\n\n:param key: The key to look up.\n:param defaultValue: The value to be returned if no value is found.\n\n:returns: the value associated with the given key or the given default value\n if there is no value associated with the key\n \n .. note:: This makes a copy of the raw contents. If the overhead of this is a\n concern, use GetValue() instead.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getRaw"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "object", "args": [{"name": "keyName", "type": "str"}, {"name": "defaultValue", "type": "object"}], "tooltip": "Returns the value at the specified key.\n\nIf the key is not found, returns the default value.\n\n:param keyName: the key\n:param defaultValue: the default value to return if the key doesn't exist\n\n:returns: the value", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getString"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "object", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "object"}], "tooltip": "Returns the string array the key maps to.\n\nIf the key does not exist or is of different type, it will return the\ndefault value.\n\n:param key: The key to look up.\n:param defaultValue: The value to be returned if no value is found.\n\n:returns: the value associated with the given key or the given default value\n if there is no value associated with the key\n \n .. note:: This makes a copy of the array. If the overhead of this is a concern,\n use GetValue() instead.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getStringArray"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myValue"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "ntcore._ntcore.Value", "args": [{"name": "keyName", "type": "str"}], "tooltip": "Retrieves the complex value (such as an array) in this table into the\ncomplex data object.\n\n:param keyName: the key", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getValue"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myValue"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "ntcore.Value", "args": [{"name": "keyName", "type": "str"}], "tooltip": "Retrieves the complex value (such as an array) in this table into the\ncomplex data object.\n\n:param keyName: the key", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "getValue"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "init"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}], "tooltip": "Returns whether the value is persistent through program restarts.\nThe key cannot be null.\n\n:param key: the key name", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "isPersistent"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "task", "type": "Callable[[], None]"}], "tooltip": "Posts a task from a listener to the ListenerExecutor, so that it can be run\nsynchronously from the main loop on the next call to updateValues().\n\n:param task: The task to run synchronously from the main thread.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "postListenerTask"}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "task", "type": "Callable[[], None]"}], "tooltip": "Posts a task from a listener to the ListenerExecutor, so that it can be run\nsynchronously from the main loop on the next call to updateValues().\n\n:param task: The task to run synchronously from the main thread.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "postListenerTask"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "keyName", "type": "str"}, {"name": "value", "type": "bool"}], "tooltip": "Maps the specified key to the specified value in this table.\n\nThe value can be retrieved by calling the get method with a key that is\nequal to the original key.\n\n:param keyName: the key\n:param value: the value\n\n:returns: False if the table key already exists with a different type", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putBoolean"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "value", "type": "List[int]"}], "tooltip": "Put a boolean array in the table.\n\n:param key: the key to be assigned to\n:param value: the value that will be assigned\n\n:returns: False if the table key already exists with a different type\n \n .. note:: The array must be of int's rather than of bool's because\n std::vector is special-cased in C++. 0 is false, any\n non-zero value is true.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putBooleanArray"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "key", "type": "str"}, {"name": "data", "type": "wpiutil._wpiutil.Sendable"}], "tooltip": "Maps the specified key to the specified value in this table.\n\nThe value can be retrieved by calling the get method with a key that is\nequal to the original key.\n\nIn order for the value to appear in the dashboard, it must be registered\nwith SendableRegistry. WPILib components do this automatically.\n\n:param key: the key\n:param data: the value", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putData"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "value", "type": "wpiutil._wpiutil.Sendable"}], "tooltip": "Maps the specified key (where the key is the name of the Sendable)\nto the specified value in this table.\n\nThe value can be retrieved by calling the get method with a key that is\nequal to the original key.\n\nIn order for the value to appear in the dashboard, it must be registered\nwith SendableRegistry. WPILib components do this automatically.\n\n:param value: the value", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "value", "type": "List[int]"}], "tooltip": "Put a boolean array in the table.\n\n:param key: the key to be assigned to\n:param value: the value that will be assigned\n\n:returns: False if the table key already exists with a different type\n \n .. note:: The array must be of int's rather than of bool's because\n std::vector is special-cased in C++. 0 is false, any\n non-zero value is true.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putBooleanArray"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "key", "type": "str"}, {"name": "data", "type": "wpiutil.Sendable"}], "tooltip": "Maps the specified key to the specified value in this table.\n\nThe value can be retrieved by calling the get method with a key that is\nequal to the original key.\n\nIn order for the value to appear in the dashboard, it must be registered\nwith SendableRegistry. WPILib components do this automatically.\n\n:param key: the key\n:param data: the value", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putData"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "value", "type": "wpiutil.Sendable"}], "tooltip": "Maps the specified key (where the key is the name of the Sendable)\nto the specified value in this table.\n\nThe value can be retrieved by calling the get method with a key that is\nequal to the original key.\n\nIn order for the value to appear in the dashboard, it must be registered\nwith SendableRegistry. WPILib components do this automatically.\n\n:param value: the value", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "keyName", "type": "str"}, {"name": "value", "type": "float"}], "tooltip": "Maps the specified key to the specified value in this table.\n\nThe value can be retrieved by calling the get method with a key that is\nequal to the original key.\n\n:param keyName: the key\n:param value: the value\n\n:returns: False if the table key already exists with a different type", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putNumber"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "value", "type": "List[float]"}], "tooltip": "Put a number array in the table.\n\n:param key: The key to be assigned to.\n:param value: The value that will be assigned.\n\n:returns: False if the table key already exists with a different type", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putNumberArray"}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "value", "type": "List[float]"}], "tooltip": "Put a number array in the table.\n\n:param key: The key to be assigned to.\n:param value: The value that will be assigned.\n\n:returns: False if the table key already exists with a different type", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putNumberArray"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "value", "type": "Buffer"}], "tooltip": "Put a raw value (byte array) in the table.\n\n:param key: The key to be assigned to.\n:param value: The value that will be assigned.\n\n:returns: False if the table key already exists with a different type", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putRaw"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "keyName", "type": "str"}, {"name": "value", "type": "str"}], "tooltip": "Maps the specified key to the specified value in this table.\n\nThe value can be retrieved by calling the get method with a key that is\nequal to the original key.\n\n:param keyName: the key\n:param value: the value\n\n:returns: False if the table key already exists with a different type", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putString"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "value", "type": "List[str]"}], "tooltip": "Put a string array in the table.\n\n:param key: The key to be assigned to.\n:param value: The value that will be assigned.\n\n:returns: False if the table key already exists with a different type", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putStringArray"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "keyName", "type": "str"}, {"name": "value", "type": "ntcore._ntcore.Value"}], "tooltip": "Maps the specified key to the specified complex value (such as an array) in\nthis table.\n\nThe value can be retrieved by calling the RetrieveValue method with a key\nthat is equal to the original key.\n\n:param keyName: the key\n:param value: the value\n\n:returns: False if the table key already exists with a different type", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putValue"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "value", "type": "List[str]"}], "tooltip": "Put a string array in the table.\n\n:param key: The key to be assigned to.\n:param value: The value that will be assigned.\n\n:returns: False if the table key already exists with a different type", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putStringArray"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "keyName", "type": "str"}, {"name": "value", "type": "ntcore.Value"}], "tooltip": "Maps the specified key to the specified complex value (such as an array) in\nthis table.\n\nThe value can be retrieved by calling the RetrieveValue method with a key\nthat is equal to the original key.\n\n:param keyName: the key\n:param value: the value\n\n:returns: False if the table key already exists with a different type", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "putValue"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Set the value in the table if key does not exist\n\n:param key: the key\n:param defaultValue: the value to set if key doesn't exist.\n\n:returns: True if the table key did not already exist, otherwise False", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setDefaultBoolean"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Set the value in the table if key does not exist.\n\n:param key: the key\n:param defaultValue: the value to set if key doesn't exist.\n\n:returns: True if the table key did not already exist, otherwise False", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setDefaultBooleanArray"}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Set the value in the table if key does not exist.\n\n:param key: the key\n:param defaultValue: the value to set if key doesn't exist.\n\n:returns: True if the table key did not already exist, otherwise False", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setDefaultBooleanArray"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Set the value in the table if key does not exist.\n\n:param key: The key.\n:param defaultValue: The value to set if key doesn't exist.\n\n:returns: True if the table key did not already exist, otherwise False", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setDefaultNumber"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Set the value in the table if key does not exist.\n\n:param key: The key.\n:param defaultValue: The value to set if key doesn't exist.\n\n:returns: True if the table key did not already exist, otherwise False", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setDefaultNumberArray"}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Set the value in the table if key does not exist.\n\n:param key: The key.\n:param defaultValue: The value to set if key doesn't exist.\n\n:returns: True if the table key did not already exist, otherwise False", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setDefaultNumberArray"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "Buffer"}], "tooltip": "Set the value in the table if key does not exist.\n\n:param key: The key.\n:param defaultValue: The value to set if key doesn't exist.\n\n:returns: True if the table key did not already exist, otherwise False", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setDefaultRaw"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Set the value in the table if key does not exist.\n\n:param key: the key\n:param defaultValue: the value to set if key doesn't exist.\n\n:returns: True if the table key did not already exist, otherwise False", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setDefaultString"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Set the value in the table if key does not exist.\n\n:param key: The key.\n:param defaultValue: The value to set if key doesn't exist.\n\n:returns: True if the table key did not already exist, otherwise False", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setDefaultStringArray"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "ntcore._ntcore.Value"}], "tooltip": "Set the value in the table if key does not exist.\n\n:param key: the key\n:param defaultValue: The value to set if key doesn't exist.\n\n:returns: True if the table key did not already exist, otherwise False", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setDefaultValue"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Set the value in the table if key does not exist.\n\n:param key: The key.\n:param defaultValue: The value to set if key doesn't exist.\n\n:returns: True if the table key did not already exist, otherwise False", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setDefaultStringArray"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [{"name": "key", "type": "str"}, {"name": "defaultValue", "type": "ntcore.Value"}], "tooltip": "Set the value in the table if key does not exist.\n\n:param key: the key\n:param defaultValue: The value to set if key doesn't exist.\n\n:returns: True if the table key did not already exist, otherwise False", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setDefaultValue"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "key", "type": "str"}], "tooltip": "Makes a key's value persistent through program restarts.\n\n:param key: the key to make persistent", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "setPersistent"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Puts all sendable data to the dashboard.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SmartDashboard", "FUNC": "updateValues"}},
];
diff --git a/src/blocks/generated/class_wpilib.Solenoid.ts b/src/blocks/generated/class_wpilib.Solenoid.ts
index cfbd457b..56a54440 100644
--- a/src/blocks/generated/class_wpilib.Solenoid.ts
+++ b/src/blocks/generated/class_wpilib.Solenoid.ts
@@ -11,16 +11,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 10 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Solenoid", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib._wpilib.PneumaticsModuleType"}, {"name": "channel", "type": "int"}], "tooltip": "Constructs a solenoid for a specified module and type.\n\n:param module: The module ID to use.\n:param moduleType: The module type to use.\n:param channel: The channel the solenoid is on.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Solenoid", "args": [{"name": "moduleType", "type": "wpilib._wpilib.PneumaticsModuleType"}, {"name": "channel", "type": "int"}], "tooltip": "Constructs a solenoid for a default module and specified type.\n\n:param moduleType: The module type to use.\n:param channel: The channel the solenoid is on.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "solenoid", "type": "wpilib._wpilib.Solenoid"}], "tooltip": "Read the current value of the solenoid.\n\n:returns: The current value of the solenoid.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "solenoid", "type": "wpilib._wpilib.Solenoid"}], "tooltip": "Get the channel this solenoid is connected to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "solenoid", "type": "wpilib._wpilib.Solenoid"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "solenoid", "type": "wpilib._wpilib.Solenoid"}], "tooltip": "Check if solenoid is Disabled.\n\nIf a solenoid is shorted, it is added to the DisabledList and\ndisabled until power cycle, or until faults are cleared.\n\n@see ClearAllPCMStickyFaults()\n\n:returns: If solenoid is disabled due to short.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "isDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "solenoid", "type": "wpilib._wpilib.Solenoid"}, {"name": "on", "type": "bool"}], "tooltip": "Set the value of a solenoid.\n\n:param on: Turn the solenoid output off or on.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "solenoid", "type": "wpilib._wpilib.Solenoid"}, {"name": "duration", "type": "wpimath.units.seconds"}], "tooltip": "Set the pulse duration in the pneumatics module. This is used in\nconjunction with the startPulse method to allow the pneumatics module to\ncontrol the timing of a pulse.\n\nOn the PCM, the timing can be controlled in 0.01 second increments, with a\nmaximum of 2.55 seconds. On the PH, the timing can be controlled in 0.001\nsecond increments, with a maximum of 65.534 seconds.\n\n@see startPulse()\n\n:param duration: The duration of the pulse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "setPulseDuration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "solenoid", "type": "wpilib._wpilib.Solenoid"}], "tooltip": "%Trigger the pneumatics module to generate a pulse of the duration set in\nsetPulseDuration.\n\n@see setPulseDuration()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "startPulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "solenoid", "type": "wpilib._wpilib.Solenoid"}], "tooltip": "Toggle the value of the solenoid.\n\nIf the solenoid is set to on, it'll be turned off. If the solenoid is set\nto off, it'll be turned on.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "toggle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Solenoid", "args": [{"name": "module", "type": "int"}, {"name": "moduleType", "type": "wpilib.PneumaticsModuleType"}, {"name": "channel", "type": "int"}], "tooltip": "Constructs a solenoid for a specified module and type.\n\n:param module: The module ID to use.\n:param moduleType: The module type to use.\n:param channel: The channel the solenoid is on.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoid"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Solenoid", "args": [{"name": "moduleType", "type": "wpilib.PneumaticsModuleType"}, {"name": "channel", "type": "int"}], "tooltip": "Constructs a solenoid for a default module and specified type.\n\n:param moduleType: The module type to use.\n:param channel: The channel the solenoid is on.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "solenoid", "type": "wpilib.Solenoid"}], "tooltip": "Read the current value of the solenoid.\n\n:returns: The current value of the solenoid.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "solenoid", "type": "wpilib.Solenoid"}], "tooltip": "Get the channel this solenoid is connected to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "solenoid", "type": "wpilib.Solenoid"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "solenoid", "type": "wpilib.Solenoid"}], "tooltip": "Check if solenoid is Disabled.\n\nIf a solenoid is shorted, it is added to the DisabledList and\ndisabled until power cycle, or until faults are cleared.\n\n@see ClearAllPCMStickyFaults()\n\n:returns: If solenoid is disabled due to short.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "isDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "solenoid", "type": "wpilib.Solenoid"}, {"name": "on", "type": "bool"}], "tooltip": "Set the value of a solenoid.\n\n:param on: Turn the solenoid output off or on.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "solenoid", "type": "wpilib.Solenoid"}, {"name": "duration", "type": "wpimath.units.seconds"}], "tooltip": "Set the pulse duration in the pneumatics module. This is used in\nconjunction with the startPulse method to allow the pneumatics module to\ncontrol the timing of a pulse.\n\nOn the PCM, the timing can be controlled in 0.01 second increments, with a\nmaximum of 2.55 seconds. On the PH, the timing can be controlled in 0.001\nsecond increments, with a maximum of 65.534 seconds.\n\n@see startPulse()\n\n:param duration: The duration of the pulse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "setPulseDuration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "solenoid", "type": "wpilib.Solenoid"}], "tooltip": "%Trigger the pneumatics module to generate a pulse of the duration set in\nsetPulseDuration.\n\n@see setPulseDuration()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "startPulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "solenoid", "type": "wpilib.Solenoid"}], "tooltip": "Toggle the value of the solenoid.\n\nIf the solenoid is set to on, it'll be turned off. If the solenoid is set\nto off, it'll be turned on.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Solenoid", "FUNC": "toggle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoid"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Spark.ts b/src/blocks/generated/class_wpilib.Spark.ts
index b6874624..dc85ebc5 100644
--- a/src/blocks/generated/class_wpilib.Spark.ts
+++ b/src/blocks/generated/class_wpilib.Spark.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySpark"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Spark", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a SPARK connected via PWM.\n\n:param channel: The PWM channel that the SPARK is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Spark"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySpark"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Spark", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a SPARK connected via PWM.\n\n:param channel: The PWM channel that the SPARK is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Spark"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Spark", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.StadiaController.Axis.ts b/src/blocks/generated/class_wpilib.StadiaController.Axis.ts
index 23ecf793..933f3706 100644
--- a/src/blocks/generated/class_wpilib.StadiaController.Axis.ts
+++ b/src/blocks/generated/class_wpilib.StadiaController.Axis.ts
@@ -17,7 +17,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.StadiaController.Axis", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController.Axis", "VAR": "kLeftY"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.StadiaController.Axis", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController.Axis", "VAR": "kRightX"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.StadiaController.Axis", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController.Axis", "VAR": "kRightY"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.StadiaController.Axis", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController.Axis"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.StadiaController.Axis", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController.Axis"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.StadiaController.Button.ts b/src/blocks/generated/class_wpilib.StadiaController.Button.ts
index fec5eb0e..342d8b2a 100644
--- a/src/blocks/generated/class_wpilib.StadiaController.Button.ts
+++ b/src/blocks/generated/class_wpilib.StadiaController.Button.ts
@@ -28,7 +28,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.StadiaController.Button", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController.Button", "VAR": "kStadia"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.StadiaController.Button", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController.Button", "VAR": "kX"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.StadiaController.Button", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController.Button", "VAR": "kY"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myButton"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.StadiaController.Button", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController.Button"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myButton"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.StadiaController.Button", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController.Button"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.StadiaController.ts b/src/blocks/generated/class_wpilib.StadiaController.ts
index c05d9ce5..561b1cd8 100644
--- a/src/blocks/generated/class_wpilib.StadiaController.ts
+++ b/src/blocks/generated/class_wpilib.StadiaController.ts
@@ -11,108 +11,108 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 102 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStadiaController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.StadiaController", "args": [{"name": "port", "type": "int"}], "tooltip": "Construct an instance of a controller.\n\nThe controller index is the USB port on the Driver Station.\n\n:param port: The port on the Driver Station that the controller is plugged\n into (0-5).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the A button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the A button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the B button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the B button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "pov", "type": "int"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param pov: index of the POV to read (starting at 0). Defaults to 0.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the center (not pressed) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the center of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 180 degree angle (down)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 180 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDown"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 225 degree angle (down\nleft) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 225 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 135 degree angle (right\ndown) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 135 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 270 degree angle (left)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 270 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 90 degree angle (right)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 90 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 0 degree angle (up) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 0 degree angle of a POV on\n the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 315 degree angle (left\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 315 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 45 degree angle (right\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 45 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the X button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the X button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the Y button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the Y button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is greater\nthan threshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value above which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is greater than\n the provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisGreaterThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is less than\nthreshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value below which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is less than the\n provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisLessThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around this button's digital signal.\n\n:param button: the button index\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the button's digital signal attached\n to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the ellipses button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the ellipses button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "ellipses"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the frame button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the frame button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "frame"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the A button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getAButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the A button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getAButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the A button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getAButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of axes for the HID.\n\n:returns: the number of axis for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the axis type of a joystick axis.\n\n:returns: the axis type of a joystick axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the B button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getBButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the B button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getBButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the B button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getBButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of buttons for the HID.\n\n:returns: the number of buttons on the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the ellipses button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getEllipsesButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the ellipses button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getEllipsesButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the ellipses button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getEllipsesButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the frame button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getFrameButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the frame button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getFrameButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the frame button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getFrameButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the google button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getGoogleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the google button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getGoogleButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the google button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getGoogleButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the hamburger button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getHamburgerButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the hamburger button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getHamburgerButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the hamburger button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getHamburgerButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the left bumper (LB) button on the controller.\n\n:deprecated: Use GetLeftBumperButton instead. This function is deprecated\n for removal to make function names consistent to allow the HID classes to\n be automatically generated.\n\n:returns: the state of the button", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the left bumper button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the left bumper button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftBumperButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the left bumper button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftBumperButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the left bumper (LB) was pressed since the last check.\n\n:deprecated: Use GetLeftBumperButtonPressed instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was pressed since the last check", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftBumperPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the left bumper (LB) was released since the last check.\n\n:deprecated: Use GetLeftBumperButtonReleased instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftBumperReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the left stick button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the left stick button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftStickButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the left stick button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftStickButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the left trigger button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftTriggerButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the left trigger button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftTriggerButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the left trigger button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftTriggerButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Get the X axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Get the Y axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the name of the HID.\n\n:returns: the name of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "pov", "type": "int"}], "tooltip": "Get the angle in degrees of a POV on the HID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(e.g. right is 90, upper-left is 315).\n\n:param pov: The index of the POV to read (starting at 0)\n\n:returns: the angle of the POV in degrees, or -1 if the POV is not pressed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of POVs for the HID.\n\n:returns: the number of POVs for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the port number of the HID.\n\n:returns: The port number of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis.\n\n:param axis: The axis to read, starting at 0.\n\n:returns: The value of the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Get the button value (starting at button 1).\n\nThe buttons are returned in a single 16 bit value with one bit representing\nthe state of each button. The appropriate button is returned as a boolean\nvalue.\n\nThis method returns true if the button is being held down at the time\nthat this method is being called.\n\n:param button: The button number to be read (starting at 1)\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was pressed since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from not pressed to held down\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you press the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was released since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from held down to not pressed\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you release the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the right bumper (RB) button on the controller.\n\n:deprecated: Use GetRightBumperButton instead. This function is deprecated\n for removal to make function names consistent to allow the HID classes to\n be automatically generated.\n\n:returns: the state of the button", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the right bumper button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the right bumper button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightBumperButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the right bumper button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightBumperButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the right bumper (RB) was pressed since the last check.\n\n:deprecated: Use GetRightBumperButtonPressed instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was pressed since the last check", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightBumperPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the right bumper (RB) was released since the last check.\n\n:deprecated: Use GetRightBumperButtonReleased instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightBumperReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the right stick button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the right stick button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightStickButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the right stick button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightStickButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the right trigger button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightTriggerButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the right trigger button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightTriggerButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the right trigger button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightTriggerButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Get the X axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Get the Y axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the stadia button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getStadiaButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the stadia button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getStadiaButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the stadia button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getStadiaButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHIDType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.interfaces._interfaces.GenericHID.HIDType", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the type of the HID.\n\n:returns: the type of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the X button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getXButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the X button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getXButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the X button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getXButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Read the value of the Y button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getYButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the Y button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getYButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Whether the Y button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getYButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the google button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the google button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "google"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the hamburger button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the hamburger button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "hamburger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get if the HID is connected.\n\n:returns: true if the HID is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the left bumper button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left bumper button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "leftBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the left stick button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left stick button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "leftStick"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the left trigger button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left trigger button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "leftTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the right bumper button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right bumper button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "rightBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the right stick button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right stick button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "rightStick"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the right trigger button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right trigger button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "rightTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "outputNumber", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set a single HID output value for the HID.\n\n:param outputNumber: The index of the output to set (1-32)\n:param value: The value to set the output to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "value", "type": "int"}], "tooltip": "Set all output values for the HID.\n\n:param value: The 32 bit output value (1 bit for each output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.RumbleType"}, {"name": "value", "type": "float"}], "tooltip": "Set the rumble output for the HID.\n\nThe DS currently supports 2 rumble values, left rumble and right rumble.\n\n:param type: Which rumble value to set\n:param value: The normalized value (0 to 1) to set the rumble to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib._wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the stadia button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the stadia button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "stadia"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStadiaController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.StadiaController", "args": [{"name": "port", "type": "int"}], "tooltip": "Construct an instance of a controller.\n\nThe controller index is the USB port on the Driver Station.\n\n:param port: The port on the Driver Station that the controller is plugged\n into (0-5).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the A button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the A button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the B button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the B button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "pov", "type": "int"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param pov: index of the POV to read (starting at 0). Defaults to 0.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the center (not pressed) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the center of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 180 degree angle (down)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 180 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDown"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 225 degree angle (down\nleft) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 225 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 135 degree angle (right\ndown) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 135 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 270 degree angle (left)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 270 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 90 degree angle (right)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 90 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 0 degree angle (up) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 0 degree angle of a POV on\n the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 315 degree angle (left\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 315 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 45 degree angle (right\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 45 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the X button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the X button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the Y button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the Y button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is greater\nthan threshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value above which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is greater than\n the provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisGreaterThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is less than\nthreshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value below which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is less than the\n provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisLessThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around this button's digital signal.\n\n:param button: the button index\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the button's digital signal attached\n to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the ellipses button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the ellipses button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "ellipses"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the frame button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the frame button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "frame"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the A button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getAButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the A button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getAButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the A button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getAButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of axes for the HID.\n\n:returns: the number of axis for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the axis type of a joystick axis.\n\n:returns: the axis type of a joystick axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the B button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getBButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the B button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getBButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the B button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getBButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of buttons for the HID.\n\n:returns: the number of buttons on the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the ellipses button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getEllipsesButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the ellipses button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getEllipsesButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the ellipses button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getEllipsesButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the frame button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getFrameButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the frame button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getFrameButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the frame button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getFrameButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the google button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getGoogleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the google button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getGoogleButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the google button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getGoogleButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the hamburger button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getHamburgerButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the hamburger button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getHamburgerButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the hamburger button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getHamburgerButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the left bumper (LB) button on the controller.\n\n:deprecated: Use GetLeftBumperButton instead. This function is deprecated\n for removal to make function names consistent to allow the HID classes to\n be automatically generated.\n\n:returns: the state of the button", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the left bumper button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the left bumper button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftBumperButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the left bumper button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftBumperButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the left bumper (LB) was pressed since the last check.\n\n:deprecated: Use GetLeftBumperButtonPressed instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was pressed since the last check", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftBumperPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the left bumper (LB) was released since the last check.\n\n:deprecated: Use GetLeftBumperButtonReleased instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftBumperReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the left stick button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the left stick button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftStickButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the left stick button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftStickButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the left trigger button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftTriggerButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the left trigger button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftTriggerButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the left trigger button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftTriggerButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Get the X axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Get the Y axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the name of the HID.\n\n:returns: the name of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "pov", "type": "int"}], "tooltip": "Get the angle in degrees of a POV on the HID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(e.g. right is 90, upper-left is 315).\n\n:param pov: The index of the POV to read (starting at 0)\n\n:returns: the angle of the POV in degrees, or -1 if the POV is not pressed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of POVs for the HID.\n\n:returns: the number of POVs for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the port number of the HID.\n\n:returns: The port number of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis.\n\n:param axis: The axis to read, starting at 0.\n\n:returns: The value of the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Get the button value (starting at button 1).\n\nThe buttons are returned in a single 16 bit value with one bit representing\nthe state of each button. The appropriate button is returned as a boolean\nvalue.\n\nThis method returns true if the button is being held down at the time\nthat this method is being called.\n\n:param button: The button number to be read (starting at 1)\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was pressed since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from not pressed to held down\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you press the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was released since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from held down to not pressed\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you release the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the right bumper (RB) button on the controller.\n\n:deprecated: Use GetRightBumperButton instead. This function is deprecated\n for removal to make function names consistent to allow the HID classes to\n be automatically generated.\n\n:returns: the state of the button", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the right bumper button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the right bumper button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightBumperButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the right bumper button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightBumperButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the right bumper (RB) was pressed since the last check.\n\n:deprecated: Use GetRightBumperButtonPressed instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was pressed since the last check", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightBumperPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the right bumper (RB) was released since the last check.\n\n:deprecated: Use GetRightBumperButtonReleased instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightBumperReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the right stick button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the right stick button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightStickButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the right stick button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightStickButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the right trigger button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightTriggerButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the right trigger button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightTriggerButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the right trigger button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightTriggerButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Get the X axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Get the Y axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the stadia button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getStadiaButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the stadia button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getStadiaButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the stadia button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getStadiaButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHIDType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.interfaces.GenericHID.HIDType", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the type of the HID.\n\n:returns: the type of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the X button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getXButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the X button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getXButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the X button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getXButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Read the value of the Y button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getYButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the Y button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getYButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}], "tooltip": "Whether the Y button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "getYButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the google button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the google button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "google"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the hamburger button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the hamburger button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "hamburger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get if the HID is connected.\n\n:returns: true if the HID is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the left bumper button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left bumper button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "leftBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the left stick button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left stick button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "leftStick"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the left trigger button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left trigger button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "leftTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the right bumper button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right bumper button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "rightBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the right stick button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right stick button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "rightStick"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the right trigger button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right trigger button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "rightTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "outputNumber", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set a single HID output value for the HID.\n\n:param outputNumber: The index of the output to set (1-32)\n:param value: The value to set the output to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "value", "type": "int"}], "tooltip": "Set all output values for the HID.\n\n:param value: The 32 bit output value (1 bit for each output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.RumbleType"}, {"name": "value", "type": "float"}], "tooltip": "Set the rumble output for the HID.\n\nThe DS currently supports 2 rumble values, left rumble and right rumble.\n\n:param type: Which rumble value to set\n:param value: The normalized value (0 to 1) to set the rumble to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "stadiaController", "type": "wpilib.StadiaController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the stadia button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the stadia button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.StadiaController", "FUNC": "stadia"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.SynchronousInterrupt.ts b/src/blocks/generated/class_wpilib.SynchronousInterrupt.ts
index 2ead570f..c7fec985 100644
--- a/src/blocks/generated/class_wpilib.SynchronousInterrupt.ts
+++ b/src/blocks/generated/class_wpilib.SynchronousInterrupt.ts
@@ -13,14 +13,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.SynchronousInterrupt", "args": [{"name": "source", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Construct a Synchronous Interrupt from a Digital Source.\n\n:param source: the DigitalSource the interrupts are triggered from", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.SynchronousInterrupt", "args": [{"name": "source", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Construct a Synchronous Interrupt from a Digital Source.\n\n:param source: the DigitalSource the interrupts are triggered from", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.SynchronousInterrupt", "args": [{"name": "source", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Construct a Synchronous Interrupt from a Digital Source.\n\n:param source: the DigitalSource the interrupts are triggered from", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "synchronousInterrupt", "type": "wpilib._wpilib.SynchronousInterrupt"}], "tooltip": "Get the timestamp of the last falling edge.\n\nThis function does not require the interrupt to be enabled to work.\n\nThis only works if falling edge was configured using setInterruptEdges.\n\n:returns: the timestamp in seconds relative to getFPGATime", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt", "FUNC": "getFallingTimestamp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "synchronousInterrupt", "type": "wpilib._wpilib.SynchronousInterrupt"}], "tooltip": "Get the timestamp (relative to FPGA Time) of the last rising edge.\n\n:returns: the timestamp in seconds relative to getFPGATime", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt", "FUNC": "getRisingTimestamp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "synchronousInterrupt", "type": "wpilib._wpilib.SynchronousInterrupt"}, {"name": "risingEdge", "type": "bool"}, {"name": "fallingEdge", "type": "bool"}], "tooltip": "Set which edges cause an interrupt to occur.\n\n:param risingEdge: true to trigger on rising edge, false otherwise.\n:param fallingEdge: true to trigger on falling edge, false otherwise", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt", "FUNC": "setInterruptEdges"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWaitResult"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.SynchronousInterrupt.WaitResult", "args": [{"name": "synchronousInterrupt", "type": "wpilib._wpilib.SynchronousInterrupt"}, {"name": "timeout", "type": "wpimath.units.seconds"}, {"name": "ignorePrevious", "type": "bool"}], "tooltip": "Wait for an interrupt to occur.\n\nBoth rising and falling edge can be returned if both a rising and\nfalling happened between calls, and ignorePrevious is false.\n\n:param timeout: The timeout to wait for. 0s or less will return immediately.\n:param ignorePrevious: True to ignore any previous interrupts, false to\n return interrupt value if an interrupt has occurred since last call.\n\n:returns: The edge(s) that were triggered, or timeout.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt", "FUNC": "waitForInterrupt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}}}, "ARG2": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "synchronousInterrupt", "type": "wpilib._wpilib.SynchronousInterrupt"}], "tooltip": "Wake up an existing wait call. Can be called from any thread.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt", "FUNC": "wakeupWaitingInterrupt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.SynchronousInterrupt", "args": [{"name": "source", "type": "wpilib.DigitalSource"}], "tooltip": "Construct a Synchronous Interrupt from a Digital Source.\n\n:param source: the DigitalSource the interrupts are triggered from", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.SynchronousInterrupt", "args": [{"name": "source", "type": "wpilib.DigitalSource"}], "tooltip": "Construct a Synchronous Interrupt from a Digital Source.\n\n:param source: the DigitalSource the interrupts are triggered from", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.SynchronousInterrupt", "args": [{"name": "source", "type": "wpilib.DigitalSource"}], "tooltip": "Construct a Synchronous Interrupt from a Digital Source.\n\n:param source: the DigitalSource the interrupts are triggered from", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "synchronousInterrupt", "type": "wpilib.SynchronousInterrupt"}], "tooltip": "Get the timestamp of the last falling edge.\n\nThis function does not require the interrupt to be enabled to work.\n\nThis only works if falling edge was configured using setInterruptEdges.\n\n:returns: the timestamp in seconds relative to getFPGATime", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt", "FUNC": "getFallingTimestamp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "synchronousInterrupt", "type": "wpilib.SynchronousInterrupt"}], "tooltip": "Get the timestamp (relative to FPGA Time) of the last rising edge.\n\n:returns: the timestamp in seconds relative to getFPGATime", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt", "FUNC": "getRisingTimestamp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "synchronousInterrupt", "type": "wpilib.SynchronousInterrupt"}, {"name": "risingEdge", "type": "bool"}, {"name": "fallingEdge", "type": "bool"}], "tooltip": "Set which edges cause an interrupt to occur.\n\n:param risingEdge: true to trigger on rising edge, false otherwise.\n:param fallingEdge: true to trigger on falling edge, false otherwise", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt", "FUNC": "setInterruptEdges"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWaitResult"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.SynchronousInterrupt.WaitResult", "args": [{"name": "synchronousInterrupt", "type": "wpilib.SynchronousInterrupt"}, {"name": "timeout", "type": "wpimath.units.seconds"}, {"name": "ignorePrevious", "type": "bool"}], "tooltip": "Wait for an interrupt to occur.\n\nBoth rising and falling edge can be returned if both a rising and\nfalling happened between calls, and ignorePrevious is false.\n\n:param timeout: The timeout to wait for. 0s or less will return immediately.\n:param ignorePrevious: True to ignore any previous interrupts, false to\n return interrupt value if an interrupt has occurred since last call.\n\n:returns: The edge(s) that were triggered, or timeout.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt", "FUNC": "waitForInterrupt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}}}, "ARG2": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "synchronousInterrupt", "type": "wpilib.SynchronousInterrupt"}], "tooltip": "Wake up an existing wait call. Can be called from any thread.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.SynchronousInterrupt", "FUNC": "wakeupWaitingInterrupt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySynchronousInterrupt"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.SynchronousInterrupt.WaitResult", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.SynchronousInterrupt.WaitResult", "ENUM_VALUE": "kBoth"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.SynchronousInterrupt.WaitResult", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.SynchronousInterrupt.WaitResult", "ENUM_VALUE": "kFallingEdge"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.SynchronousInterrupt.WaitResult", "importModule": "wpilib"}, "fields": {"ENUM_TYPE": "wpilib.SynchronousInterrupt.WaitResult", "ENUM_VALUE": "kRisingEdge"}},
diff --git a/src/blocks/generated/class_wpilib.Talon.ts b/src/blocks/generated/class_wpilib.Talon.ts
index 32656d96..8d7f8397 100644
--- a/src/blocks/generated/class_wpilib.Talon.ts
+++ b/src/blocks/generated/class_wpilib.Talon.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTalon"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Talon", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Talon connected via PWM.\n\n:param channel: The PWM channel that the Talon is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Talon"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTalon"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Talon", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Talon connected via PWM.\n\n:param channel: The PWM channel that the Talon is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Talon"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Talon", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.TimedRobot.ts b/src/blocks/generated/class_wpilib.TimedRobot.ts
index dbfedc99..0326b038 100644
--- a/src/blocks/generated/class_wpilib.TimedRobot.ts
+++ b/src/blocks/generated/class_wpilib.TimedRobot.ts
@@ -14,44 +14,44 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 39 blocks.
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.TimedRobot", "varType": "float", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "VAR": "kDefaultPeriod"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimedRobot"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.TimedRobot", "args": [{"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Constructor for TimedRobot.\n\n:param period: Period.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timedRobot", "type": "wpilib._wpilib.TimedRobot"}, {"name": "callback", "type": "Callable[[], None]"}, {"name": "period", "type": "wpimath.units.seconds"}, {"name": "offset", "type": "wpimath.units.seconds"}], "tooltip": "Add a callback to run at a specific period with a starting time offset.\n\nThis is scheduled on TimedRobot's Notifier, so TimedRobot and the callback\nrun synchronously. Interactions between them are thread-safe.\n\n:param callback: The callback to run.\n:param period: The period at which to run the callback.\n:param offset: The offset from the common starting time. This is useful\n for scheduling a callback in a different timeslot relative\n to TimedRobot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "addPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Exit code for autonomous mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits autonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for autonomous mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters autonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for autonomous mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in\nautonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Exit code for disabled mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits disabled mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for disabled mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time\nthe robot enters disabled mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for disabled mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in disabled\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Code that needs to know the DS state should go here.\n\nUsers should override this method for initialization that needs to occur\nafter the DS is connected, such as needing the alliance information.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "driverStationConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}, {"name": "testLW", "type": "bool"}], "tooltip": "Sets whether LiveWindow operation is enabled during test mode.\n\n:param testLW: True to enable, false to disable. Defaults to false.\n @throws if called in test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "enableLiveWindowInTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timedRobot", "type": "wpilib._wpilib.TimedRobot"}], "tooltip": "Ends the main loop in StartCompetition().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "endCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[bool, bool, bool]", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "More efficient way to determine what state the robot is in.\n\n:returns: booleans representing enabled, isautonomous, istest\n\n.. versionadded:: 2019.2.1\n\n.. note:: This function only exists in RobotPy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "getControlState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "timedRobot", "type": "wpilib._wpilib.TimedRobot"}], "tooltip": "Return the system clock time in micrseconds for the start of the current\nperiodic loop. This is in the same time base as Timer.GetFPGATimestamp(),\nbut is stable through a loop. It is updated at the beginning of every\nperiodic callback (including the normal periodic loop).\n\n:returns: Robot running time in microseconds, as of the start of the current\n periodic function.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "getLoopStartTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Gets time period between calls to Periodic() functions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRuntimeType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.RuntimeType", "args": [], "tooltip": "Get the current runtime type.\n\n:returns: Current runtime type.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "getRuntimeType"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode.\n\n:returns: True if the robot is currently operating Autonomously as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomous"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode and enabled.\n\n:returns: True if the robot us currently operating Autonomously while enabled\n as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomousEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently disabled.\n\n:returns: True if the Robot is currently disabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently enabled.\n\n:returns: True if the Robot is currently enabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Whether LiveWindow operation is enabled during test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "isLiveWindowEnabledInTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimedRobot"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.TimedRobot", "args": [{"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Constructor for TimedRobot.\n\n:param period: Period.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timedRobot", "type": "wpilib.TimedRobot"}, {"name": "callback", "type": "Callable[[], None]"}, {"name": "period", "type": "wpimath.units.seconds"}, {"name": "offset", "type": "wpimath.units.seconds"}], "tooltip": "Add a callback to run at a specific period with a starting time offset.\n\nThis is scheduled on TimedRobot's Notifier, so TimedRobot and the callback\nrun synchronously. Interactions between them are thread-safe.\n\n:param callback: The callback to run.\n:param period: The period at which to run the callback.\n:param offset: The offset from the common starting time. This is useful\n for scheduling a callback in a different timeslot relative\n to TimedRobot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "addPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Exit code for autonomous mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits autonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for autonomous mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters autonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for autonomous mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in\nautonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Exit code for disabled mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits disabled mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for disabled mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time\nthe robot enters disabled mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for disabled mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in disabled\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Code that needs to know the DS state should go here.\n\nUsers should override this method for initialization that needs to occur\nafter the DS is connected, such as needing the alliance information.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "driverStationConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}, {"name": "testLW", "type": "bool"}], "tooltip": "Sets whether LiveWindow operation is enabled during test mode.\n\n:param testLW: True to enable, false to disable. Defaults to false.\n @throws if called in test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "enableLiveWindowInTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timedRobot", "type": "wpilib.TimedRobot"}], "tooltip": "Ends the main loop in StartCompetition().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "endCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[bool, bool, bool]", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "More efficient way to determine what state the robot is in.\n\n:returns: booleans representing enabled, isautonomous, istest\n\n.. versionadded:: 2019.2.1\n\n.. note:: This function only exists in RobotPy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "getControlState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "timedRobot", "type": "wpilib.TimedRobot"}], "tooltip": "Return the system clock time in micrseconds for the start of the current\nperiodic loop. This is in the same time base as Timer.GetFPGATimestamp(),\nbut is stable through a loop. It is updated at the beginning of every\nperiodic callback (including the normal periodic loop).\n\n:returns: Robot running time in microseconds, as of the start of the current\n periodic function.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "getLoopStartTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Gets time period between calls to Periodic() functions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRuntimeType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.RuntimeType", "args": [], "tooltip": "Get the current runtime type.\n\n:returns: Current runtime type.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "getRuntimeType"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode.\n\n:returns: True if the robot is currently operating Autonomously as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomous"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode and enabled.\n\n:returns: True if the robot us currently operating Autonomously while enabled\n as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomousEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently disabled.\n\n:returns: True if the Robot is currently disabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently enabled.\n\n:returns: True if the Robot is currently enabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Whether LiveWindow operation is enabled during test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "isLiveWindowEnabledInTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Get if the robot is real.\n\n:returns: If the robot is running in the real world.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "isReal"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Get if the robot is a simulation.\n\n:returns: If the robot is running in simulation.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "isSimulation"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Operator Control mode.\n\n:returns: True if the robot is currently operating in Tele-Op mode as\n determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Operator Control mode and enabled.\n\n:returns: True if the robot is currently operating in Tele-Op mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Test mode.\n\n:returns: True if the robot is currently running in Test mode as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Test mode and enabled.\n\n:returns: True if the robot is currently operating in Test mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTestEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Operator Control mode.\n\n:returns: True if the robot is currently operating in Tele-Op mode as\n determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Operator Control mode and enabled.\n\n:returns: True if the robot is currently operating in Tele-Op mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Test mode.\n\n:returns: True if the robot is currently running in Test mode as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Test mode and enabled.\n\n:returns: True if the robot is currently operating in Test mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTestEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "object", "args": [{"name": "robot_cls", "type": "object"}], "tooltip": "Starting point for the application", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "main"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Prints list of epochs added so far and their times.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "printWatchdogEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Robot-wide initialization code should go here.\n\nUsers should override this method for default Robot-wide initialization\nwhich will be called when the robot is first powered on. It will be called\nexactly one time.\n\nNote: This method is functionally identical to the class constructor so\nthat should be used instead.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "robotInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for all modes should go here.\n\nThis function is called each time a new packet is received from the driver\nstation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "robotPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enables or disables flushing NetworkTables every loop iteration.\nBy default, this is enabled.\n\n:deprecated: Deprecated without replacement.\n\n:param enabled: True to enable, false to disable", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "setNetworkTablesFlushEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timedRobot", "type": "wpilib._wpilib.TimedRobot"}], "tooltip": "Provide an alternate \"main loop\" via StartCompetition().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "startCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Exit code for teleop mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits teleop mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for teleop mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters teleop mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for teleop mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in teleop\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Exit code for test mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for test mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for test mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in test\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Prints list of epochs added so far and their times.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "printWatchdogEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Robot-wide initialization code should go here.\n\nUsers should override this method for default Robot-wide initialization\nwhich will be called when the robot is first powered on. It will be called\nexactly one time.\n\nNote: This method is functionally identical to the class constructor so\nthat should be used instead.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "robotInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for all modes should go here.\n\nThis function is called each time a new packet is received from the driver\nstation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "robotPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enables or disables flushing NetworkTables every loop iteration.\nBy default, this is enabled.\n\n:deprecated: Deprecated without replacement.\n\n:param enabled: True to enable, false to disable", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "setNetworkTablesFlushEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timedRobot", "type": "wpilib.TimedRobot"}], "tooltip": "Provide an alternate \"main loop\" via StartCompetition().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "startCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Exit code for teleop mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits teleop mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for teleop mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters teleop mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for teleop mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in teleop\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Exit code for test mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for test mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for test mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in test\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Timer.ts b/src/blocks/generated/class_wpilib.Timer.ts
index e23cb014..bcdcd9f8 100644
--- a/src/blocks/generated/class_wpilib.Timer.ts
+++ b/src/blocks/generated/class_wpilib.Timer.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Timer", "args": [], "tooltip": "Create a new timer object.\n\nCreate a new timer object and reset the time to zero. The timer is\ninitially not running and must be started.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "timer", "type": "wpilib._wpilib.Timer"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Check if the period specified has passed and if it has, advance the start\ntime by that period. This is useful to decide if it's time to do periodic\nwork without drifting later by the time it took to get around to checking.\n\n:param period: The period to check for.\n\n:returns: True if the period has passed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "advanceIfElapsed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "timer", "type": "wpilib._wpilib.Timer"}], "tooltip": "Get the current time from the timer. If the clock is running it is derived\nfrom the current system clock the start time stored in the timer class. If\nthe clock is not running, then return the time when it was last stopped.\n\n:returns: Current time value for this timer in seconds", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Timer", "args": [], "tooltip": "Create a new timer object.\n\nCreate a new timer object and reset the time to zero. The timer is\ninitially not running and must be started.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "timer", "type": "wpilib.Timer"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Check if the period specified has passed and if it has, advance the start\ntime by that period. This is useful to decide if it's time to do periodic\nwork without drifting later by the time it took to get around to checking.\n\n:param period: The period to check for.\n\n:returns: True if the period has passed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "advanceIfElapsed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "timer", "type": "wpilib.Timer"}], "tooltip": "Get the current time from the timer. If the clock is running it is derived\nfrom the current system clock the start time stored in the timer class. If\nthe clock is not running, then return the time when it was last stopped.\n\n:returns: Current time value for this timer in seconds", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.seconds", "args": [], "tooltip": "Return the FPGA system clock time in seconds.\n\nReturn the time from the FPGA hardware clock in seconds since the FPGA\nstarted. Rolls over after 71 minutes.\n\n:returns: Robot running time in seconds.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "getFPGATimestamp"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.seconds", "args": [], "tooltip": "Return the approximate match time.\n\nThe FMS does not send an official match time to the robots, but does send\nan approximate match time. The value will count down the time remaining in\nthe current period (auto or teleop).\n\nWarning: This is not an official time (so it cannot be used to dispute ref\ncalls or guarantee that a function will trigger before the match ends).\n\nThe Practice Match function of the DS approximates the behavior seen on the\nfield.\n\n:returns: Time remaining in current match period (auto or teleop)", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "getMatchTime"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.seconds", "args": [], "tooltip": "Return the clock time in seconds. By default, the time is based on the FPGA\nhardware clock in seconds since the FPGA started. However, the return value\nof this method may be modified to use any time base, including\nnon-monotonic time bases.\n\n:returns: Robot running time in seconds.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "getTimestamp"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "timer", "type": "wpilib._wpilib.Timer"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Check if the period specified has passed.\n\n:param period: The period to check.\n\n:returns: True if the period has passed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "hasElapsed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "timer", "type": "wpilib._wpilib.Timer"}], "tooltip": "Whether the timer is currently running.\n\n:returns: true if running.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "isRunning"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timer", "type": "wpilib._wpilib.Timer"}], "tooltip": "Reset the timer by setting the time to 0.\n\nMake the timer startTime the current time so new requests will be relative\nto now.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timer", "type": "wpilib._wpilib.Timer"}], "tooltip": "Restart the timer by stopping the timer, if it is not already stopped,\nresetting the accumulated time, then starting the timer again. If you\nwant an event to periodically reoccur at some time interval from the\nstart time, consider using AdvanceIfElapsed() instead.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "restart"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timer", "type": "wpilib._wpilib.Timer"}], "tooltip": "Start the timer running.\n\nJust set the running flag to true indicating that all time requests should\nbe relative to the system clock. Note that this method is a no-op if the\ntimer is already running.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "start"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timer", "type": "wpilib._wpilib.Timer"}], "tooltip": "Stop the timer.\n\nThis computes the time as of now and clears the running flag, causing all\nsubsequent time requests to be read from the accumulated time rather than\nlooking at the system clock.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "stop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "timer", "type": "wpilib.Timer"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Check if the period specified has passed.\n\n:param period: The period to check.\n\n:returns: True if the period has passed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "hasElapsed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "timer", "type": "wpilib.Timer"}], "tooltip": "Whether the timer is currently running.\n\n:returns: true if running.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "isRunning"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timer", "type": "wpilib.Timer"}], "tooltip": "Reset the timer by setting the time to 0.\n\nMake the timer startTime the current time so new requests will be relative\nto now.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timer", "type": "wpilib.Timer"}], "tooltip": "Restart the timer by stopping the timer, if it is not already stopped,\nresetting the accumulated time, then starting the timer again. If you\nwant an event to periodically reoccur at some time interval from the\nstart time, consider using AdvanceIfElapsed() instead.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "restart"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timer", "type": "wpilib.Timer"}], "tooltip": "Start the timer running.\n\nJust set the running flag to true indicating that all time requests should\nbe relative to the system clock. Note that this method is a no-op if the\ntimer is already running.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "start"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timer", "type": "wpilib.Timer"}], "tooltip": "Stop the timer.\n\nThis computes the time as of now and clears the running flag, causing all\nsubsequent time requests to be read from the accumulated time rather than\nlooking at the system clock.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Timer", "FUNC": "stop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimer"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.TimesliceRobot.ts b/src/blocks/generated/class_wpilib.TimesliceRobot.ts
index 72699d45..4c62a753 100644
--- a/src/blocks/generated/class_wpilib.TimesliceRobot.ts
+++ b/src/blocks/generated/class_wpilib.TimesliceRobot.ts
@@ -14,45 +14,45 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 40 blocks.
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.TimesliceRobot", "varType": "float", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimesliceRobot", "VAR": "kDefaultPeriod"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimesliceRobot"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.TimesliceRobot", "args": [{"name": "robotPeriodicAllocation", "type": "wpimath.units.seconds"}, {"name": "controllerPeriod", "type": "wpimath.units.seconds"}], "tooltip": "Constructor for TimesliceRobot.\n\n:param robotPeriodicAllocation: The allocation to give the TimesliceRobot\n periodic functions.\n:param controllerPeriod: The controller period. The sum of all scheduler\n allocations should be less than or equal to this\n value.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimesliceRobot"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timedRobot", "type": "wpilib._wpilib.TimedRobot"}, {"name": "callback", "type": "Callable[[], None]"}, {"name": "period", "type": "wpimath.units.seconds"}, {"name": "offset", "type": "wpimath.units.seconds"}], "tooltip": "Add a callback to run at a specific period with a starting time offset.\n\nThis is scheduled on TimedRobot's Notifier, so TimedRobot and the callback\nrun synchronously. Interactions between them are thread-safe.\n\n:param callback: The callback to run.\n:param period: The period at which to run the callback.\n:param offset: The offset from the common starting time. This is useful\n for scheduling a callback in a different timeslot relative\n to TimedRobot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "addPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Exit code for autonomous mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits autonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for autonomous mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters autonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for autonomous mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in\nautonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Exit code for disabled mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits disabled mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for disabled mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time\nthe robot enters disabled mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for disabled mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in disabled\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Code that needs to know the DS state should go here.\n\nUsers should override this method for initialization that needs to occur\nafter the DS is connected, such as needing the alliance information.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "driverStationConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}, {"name": "testLW", "type": "bool"}], "tooltip": "Sets whether LiveWindow operation is enabled during test mode.\n\n:param testLW: True to enable, false to disable. Defaults to false.\n @throws if called in test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "enableLiveWindowInTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timedRobot", "type": "wpilib._wpilib.TimedRobot"}], "tooltip": "Ends the main loop in StartCompetition().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "endCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[bool, bool, bool]", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "More efficient way to determine what state the robot is in.\n\n:returns: booleans representing enabled, isautonomous, istest\n\n.. versionadded:: 2019.2.1\n\n.. note:: This function only exists in RobotPy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "getControlState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "timedRobot", "type": "wpilib._wpilib.TimedRobot"}], "tooltip": "Return the system clock time in micrseconds for the start of the current\nperiodic loop. This is in the same time base as Timer.GetFPGATimestamp(),\nbut is stable through a loop. It is updated at the beginning of every\nperiodic callback (including the normal periodic loop).\n\n:returns: Robot running time in microseconds, as of the start of the current\n periodic function.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "getLoopStartTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Gets time period between calls to Periodic() functions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRuntimeType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.RuntimeType", "args": [], "tooltip": "Get the current runtime type.\n\n:returns: Current runtime type.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimesliceRobot", "FUNC": "getRuntimeType"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode.\n\n:returns: True if the robot is currently operating Autonomously as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomous"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode and enabled.\n\n:returns: True if the robot us currently operating Autonomously while enabled\n as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomousEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently disabled.\n\n:returns: True if the Robot is currently disabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently enabled.\n\n:returns: True if the Robot is currently enabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Whether LiveWindow operation is enabled during test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "isLiveWindowEnabledInTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimesliceRobot"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.TimesliceRobot", "args": [{"name": "robotPeriodicAllocation", "type": "wpimath.units.seconds"}, {"name": "controllerPeriod", "type": "wpimath.units.seconds"}], "tooltip": "Constructor for TimesliceRobot.\n\n:param robotPeriodicAllocation: The allocation to give the TimesliceRobot\n periodic functions.\n:param controllerPeriod: The controller period. The sum of all scheduler\n allocations should be less than or equal to this\n value.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimesliceRobot"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timedRobot", "type": "wpilib.TimedRobot"}, {"name": "callback", "type": "Callable[[], None]"}, {"name": "period", "type": "wpimath.units.seconds"}, {"name": "offset", "type": "wpimath.units.seconds"}], "tooltip": "Add a callback to run at a specific period with a starting time offset.\n\nThis is scheduled on TimedRobot's Notifier, so TimedRobot and the callback\nrun synchronously. Interactions between them are thread-safe.\n\n:param callback: The callback to run.\n:param period: The period at which to run the callback.\n:param offset: The offset from the common starting time. This is useful\n for scheduling a callback in a different timeslot relative\n to TimedRobot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "addPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Exit code for autonomous mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits autonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for autonomous mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters autonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for autonomous mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in\nautonomous mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "autonomousPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Exit code for disabled mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits disabled mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for disabled mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time\nthe robot enters disabled mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for disabled mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in disabled\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "disabledPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Code that needs to know the DS state should go here.\n\nUsers should override this method for initialization that needs to occur\nafter the DS is connected, such as needing the alliance information.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "driverStationConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}, {"name": "testLW", "type": "bool"}], "tooltip": "Sets whether LiveWindow operation is enabled during test mode.\n\n:param testLW: True to enable, false to disable. Defaults to false.\n @throws if called in test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "enableLiveWindowInTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timedRobot", "type": "wpilib.TimedRobot"}], "tooltip": "Ends the main loop in StartCompetition().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "endCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "tuple[bool, bool, bool]", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "More efficient way to determine what state the robot is in.\n\n:returns: booleans representing enabled, isautonomous, istest\n\n.. versionadded:: 2019.2.1\n\n.. note:: This function only exists in RobotPy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "getControlState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "timedRobot", "type": "wpilib.TimedRobot"}], "tooltip": "Return the system clock time in micrseconds for the start of the current\nperiodic loop. This is in the same time base as Timer.GetFPGATimestamp(),\nbut is stable through a loop. It is updated at the beginning of every\nperiodic callback (including the normal periodic loop).\n\n:returns: Robot running time in microseconds, as of the start of the current\n periodic function.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "getLoopStartTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Gets time period between calls to Periodic() functions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRuntimeType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.RuntimeType", "args": [], "tooltip": "Get the current runtime type.\n\n:returns: Current runtime type.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimesliceRobot", "FUNC": "getRuntimeType"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode.\n\n:returns: True if the robot is currently operating Autonomously as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomous"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Autonomous mode and enabled.\n\n:returns: True if the robot us currently operating Autonomously while enabled\n as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isAutonomousEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently disabled.\n\n:returns: True if the Robot is currently disabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isDisabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the Robot is currently enabled.\n\n:returns: True if the Robot is currently enabled by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Whether LiveWindow operation is enabled during test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "isLiveWindowEnabledInTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Get if the robot is real.\n\n:returns: If the robot is running in the real world.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimesliceRobot", "FUNC": "isReal"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Get if the robot is a simulation.\n\n:returns: If the robot is running in simulation.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimesliceRobot", "FUNC": "isSimulation"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Operator Control mode.\n\n:returns: True if the robot is currently operating in Tele-Op mode as\n determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Operator Control mode and enabled.\n\n:returns: True if the robot is currently operating in Tele-Op mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Test mode.\n\n:returns: True if the robot is currently running in Test mode as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib._wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Test mode and enabled.\n\n:returns: True if the robot is currently operating in Test mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTestEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Operator Control mode.\n\n:returns: True if the robot is currently operating in Tele-Op mode as\n determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Operator Control mode and enabled.\n\n:returns: True if the robot is currently operating in Tele-Op mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTeleopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is currently in Test mode.\n\n:returns: True if the robot is currently running in Test mode as determined\n by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "robotBase", "type": "wpilib.RobotBase"}], "tooltip": "Determine if the robot is current in Test mode and enabled.\n\n:returns: True if the robot is currently operating in Test mode while\n enabled as determined by the Driver Station.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.RobotBase", "FUNC": "isTestEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotBase"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "object", "args": [{"name": "robot_cls", "type": "object"}], "tooltip": "Starting point for the application", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.TimesliceRobot", "FUNC": "main"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Prints list of epochs added so far and their times.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "printWatchdogEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Robot-wide initialization code should go here.\n\nUsers should override this method for default Robot-wide initialization\nwhich will be called when the robot is first powered on. It will be called\nexactly one time.\n\nNote: This method is functionally identical to the class constructor so\nthat should be used instead.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "robotInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for all modes should go here.\n\nThis function is called each time a new packet is received from the driver\nstation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "robotPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timesliceRobot", "type": "wpilib._wpilib.TimesliceRobot"}, {"name": "func", "type": "Callable[[], None]"}, {"name": "allocation", "type": "wpimath.units.seconds"}], "tooltip": "Schedule a periodic function with the constructor's controller period and\nthe given allocation. The function's runtime allocation will be placed\nafter the end of the previous one's.\n\nIf a call to this function makes the allocations exceed the controller\nperiod, an exception will be thrown since that means the TimesliceRobot\nperiodic functions and the given function will have conflicting\ntimeslices.\n\n:param func: Function to schedule.\n:param allocation: The function's runtime allocation out of the controller\n period.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimesliceRobot", "FUNC": "schedule"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimesliceRobot"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enables or disables flushing NetworkTables every loop iteration.\nBy default, this is enabled.\n\n:deprecated: Deprecated without replacement.\n\n:param enabled: True to enable, false to disable", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "setNetworkTablesFlushEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timedRobot", "type": "wpilib._wpilib.TimedRobot"}], "tooltip": "Provide an alternate \"main loop\" via StartCompetition().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "startCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Exit code for teleop mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits teleop mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for teleop mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters teleop mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for teleop mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in teleop\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Exit code for test mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for test mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib._wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for test mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in test\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Prints list of epochs added so far and their times.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "printWatchdogEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Robot-wide initialization code should go here.\n\nUsers should override this method for default Robot-wide initialization\nwhich will be called when the robot is first powered on. It will be called\nexactly one time.\n\nNote: This method is functionally identical to the class constructor so\nthat should be used instead.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "robotInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for all modes should go here.\n\nThis function is called each time a new packet is received from the driver\nstation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "robotPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timesliceRobot", "type": "wpilib.TimesliceRobot"}, {"name": "func", "type": "Callable[[], None]"}, {"name": "allocation", "type": "wpimath.units.seconds"}], "tooltip": "Schedule a periodic function with the constructor's controller period and\nthe given allocation. The function's runtime allocation will be placed\nafter the end of the previous one's.\n\nIf a call to this function makes the allocations exceed the controller\nperiod, an exception will be thrown since that means the TimesliceRobot\nperiodic functions and the given function will have conflicting\ntimeslices.\n\n:param func: Function to schedule.\n:param allocation: The function's runtime allocation out of the controller\n period.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimesliceRobot", "FUNC": "schedule"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimesliceRobot"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enables or disables flushing NetworkTables every loop iteration.\nBy default, this is enabled.\n\n:deprecated: Deprecated without replacement.\n\n:param enabled: True to enable, false to disable", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "setNetworkTablesFlushEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timedRobot", "type": "wpilib.TimedRobot"}], "tooltip": "Provide an alternate \"main loop\" via StartCompetition().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.TimedRobot", "FUNC": "startCompetition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimedRobot"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Exit code for teleop mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits teleop mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for teleop mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters teleop mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for teleop mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in teleop\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "teleopPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Exit code for test mode should go here.\n\nUsers should override this method for code which will be called each time\nthe robot exits test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testExit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Initialization code for test mode should go here.\n\nUsers should override this method for initialization code which will be\ncalled each time the robot enters test mode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testInit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "iterativeRobotBase", "type": "wpilib.IterativeRobotBase"}], "tooltip": "Periodic code for test mode should go here.\n\nUsers should override this method for code which will be called each time a\nnew packet is received from the driver station and the robot is in test\nmode.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.IterativeRobotBase", "FUNC": "testPeriodic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myIterativeRobotBase"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Tracer.ts b/src/blocks/generated/class_wpilib.Tracer.ts
index bfd4ba7c..f1e1c59b 100644
--- a/src/blocks/generated/class_wpilib.Tracer.ts
+++ b/src/blocks/generated/class_wpilib.Tracer.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTracer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Tracer", "args": [], "tooltip": "Constructs a Tracer instance.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Tracer"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tracer", "type": "wpilib._wpilib.Tracer"}, {"name": "epochName", "type": "str"}], "tooltip": "Adds time since last epoch to the list printed by PrintEpochs().\n\nEpochs are a way to partition the time elapsed so that when overruns occur,\none can determine which parts of an operation consumed the most time.\n\n:param epochName: The name to associate with the epoch.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Tracer", "FUNC": "addEpoch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTracer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tracer", "type": "wpilib._wpilib.Tracer"}], "tooltip": "Clears all epochs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Tracer", "FUNC": "clearEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTracer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "tracer", "type": "wpilib._wpilib.Tracer"}], "tooltip": "Retreives list of epochs added so far as a string\n\n.. versionadded:: 2021.1.2\n\n.. note:: This function only exists in RobotPy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Tracer", "FUNC": "getEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTracer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tracer", "type": "wpilib._wpilib.Tracer"}], "tooltip": "Prints list of epochs added so far and their times to the DriverStation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Tracer", "FUNC": "printEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTracer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tracer", "type": "wpilib._wpilib.Tracer"}], "tooltip": "Restarts the epoch timer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Tracer", "FUNC": "resetTimer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTracer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTracer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Tracer", "args": [], "tooltip": "Constructs a Tracer instance.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Tracer"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tracer", "type": "wpilib.Tracer"}, {"name": "epochName", "type": "str"}], "tooltip": "Adds time since last epoch to the list printed by PrintEpochs().\n\nEpochs are a way to partition the time elapsed so that when overruns occur,\none can determine which parts of an operation consumed the most time.\n\n:param epochName: The name to associate with the epoch.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Tracer", "FUNC": "addEpoch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTracer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tracer", "type": "wpilib.Tracer"}], "tooltip": "Clears all epochs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Tracer", "FUNC": "clearEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTracer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "tracer", "type": "wpilib.Tracer"}], "tooltip": "Retreives list of epochs added so far as a string\n\n.. versionadded:: 2021.1.2\n\n.. note:: This function only exists in RobotPy", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Tracer", "FUNC": "getEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTracer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tracer", "type": "wpilib.Tracer"}], "tooltip": "Prints list of epochs added so far and their times to the DriverStation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Tracer", "FUNC": "printEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTracer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tracer", "type": "wpilib.Tracer"}], "tooltip": "Restarts the epoch timer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Tracer", "FUNC": "resetTimer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTracer"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Ultrasonic.ts b/src/blocks/generated/class_wpilib.Ultrasonic.ts
index badad030..f02161c5 100644
--- a/src/blocks/generated/class_wpilib.Ultrasonic.ts
+++ b/src/blocks/generated/class_wpilib.Ultrasonic.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myUltrasonic"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Ultrasonic", "args": [{"name": "pingChannel", "type": "int"}, {"name": "echoChannel", "type": "int"}], "tooltip": "Create an instance of the Ultrasonic Sensor.\n\nThis is designed to support the Daventech SRF04 and Vex ultrasonic sensors.\n\n:param pingChannel: The digital output channel that sends the pulse to\n initiate the sensor sending the ping.\n:param echoChannel: The digital input channel that receives the echo. The\n length of time that the echo is high represents the\n round trip time of the ping, and the distance.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myUltrasonic"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Ultrasonic", "args": [{"name": "pingChannel", "type": "wpilib._wpilib.DigitalOutput"}, {"name": "echoChannel", "type": "wpilib._wpilib.DigitalInput"}], "tooltip": "Create an instance of an Ultrasonic Sensor from a DigitalInput for the echo\nchannel and a DigitalOutput for the ping channel.\n\n:param pingChannel: The digital output object that starts the sensor doing a\n ping. Requires a 10uS pulse to start.\n:param echoChannel: The digital input object that times the return pulse to\n determine the range.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "ultrasonic", "type": "wpilib._wpilib.Ultrasonic"}], "tooltip": "Returns the echo channel.\n\n:returns: The echo channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "getEchoChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "ultrasonic", "type": "wpilib._wpilib.Ultrasonic"}], "tooltip": "Get the range from the ultrasonic sensor.\n\n:returns: Range of the target returned from the ultrasonic sensor. If there\n is no valid value yet, i.e. at least one measurement hasn't\n completed, then return 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "getRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.inches", "args": [{"name": "ultrasonic", "type": "wpilib._wpilib.Ultrasonic"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "getRangeInches"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.millimeters", "args": [{"name": "ultrasonic", "type": "wpilib._wpilib.Ultrasonic"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "getRangeMM"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ultrasonic", "type": "wpilib._wpilib.Ultrasonic"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "ultrasonic", "type": "wpilib._wpilib.Ultrasonic"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "ultrasonic", "type": "wpilib._wpilib.Ultrasonic"}], "tooltip": "Check if there is a valid range measurement.\n\nThe ranges are accumulated in a counter that will increment on each edge of\nthe echo (return) signal. If the count is not at least 2, then the range\nhas not yet been measured, and is invalid.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "isRangeValid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ultrasonic", "type": "wpilib._wpilib.Ultrasonic"}], "tooltip": "Single ping to ultrasonic sensor.\n\nSend out a single ping to the ultrasonic sensor. This only works if\nautomatic (round robin) mode is disabled. A single ping is sent out, and\nthe counter should count the semi-period when it comes in. The counter is\nreset to make the current value invalid.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "ping"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myUltrasonic"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Ultrasonic", "args": [{"name": "pingChannel", "type": "int"}, {"name": "echoChannel", "type": "int"}], "tooltip": "Create an instance of the Ultrasonic Sensor.\n\nThis is designed to support the Daventech SRF04 and Vex ultrasonic sensors.\n\n:param pingChannel: The digital output channel that sends the pulse to\n initiate the sensor sending the ping.\n:param echoChannel: The digital input channel that receives the echo. The\n length of time that the echo is high represents the\n round trip time of the ping, and the distance.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myUltrasonic"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Ultrasonic", "args": [{"name": "pingChannel", "type": "wpilib.DigitalOutput"}, {"name": "echoChannel", "type": "wpilib.DigitalInput"}], "tooltip": "Create an instance of an Ultrasonic Sensor from a DigitalInput for the echo\nchannel and a DigitalOutput for the ping channel.\n\n:param pingChannel: The digital output object that starts the sensor doing a\n ping. Requires a 10uS pulse to start.\n:param echoChannel: The digital input object that times the return pulse to\n determine the range.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "ultrasonic", "type": "wpilib.Ultrasonic"}], "tooltip": "Returns the echo channel.\n\n:returns: The echo channel.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "getEchoChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "ultrasonic", "type": "wpilib.Ultrasonic"}], "tooltip": "Get the range from the ultrasonic sensor.\n\n:returns: Range of the target returned from the ultrasonic sensor. If there\n is no valid value yet, i.e. at least one measurement hasn't\n completed, then return 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "getRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.inches", "args": [{"name": "ultrasonic", "type": "wpilib.Ultrasonic"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "getRangeInches"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.millimeters", "args": [{"name": "ultrasonic", "type": "wpilib.Ultrasonic"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "getRangeMM"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ultrasonic", "type": "wpilib.Ultrasonic"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "ultrasonic", "type": "wpilib.Ultrasonic"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "isEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "ultrasonic", "type": "wpilib.Ultrasonic"}], "tooltip": "Check if there is a valid range measurement.\n\nThe ranges are accumulated in a counter that will increment on each edge of\nthe echo (return) signal. If the count is not at least 2, then the range\nhas not yet been measured, and is invalid.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "isRangeValid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ultrasonic", "type": "wpilib.Ultrasonic"}], "tooltip": "Single ping to ultrasonic sensor.\n\nSend out a single ping to the ultrasonic sensor. This only works if\nautomatic (round robin) mode is disabled. A single ping is sent out, and\nthe counter should count the semi-period when it comes in. The counter is\nreset to make the current value invalid.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "ping"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "enabling", "type": "bool"}], "tooltip": "Turn Automatic mode on/off.\n\nWhen in Automatic mode, all sensors will fire in round robin, waiting a set\ntime between each sensor.\n\n:param enabling: Set to true if round robin scheduling should start for all\n the ultrasonic sensors. This scheduling method assures that\n the sensors are non-interfering because no two sensors fire\n at the same time. If another scheduling algorithm is\n preferred, it can be implemented by pinging the sensors\n manually and waiting for the results to come back.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "setAutomaticMode"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ultrasonic", "type": "wpilib._wpilib.Ultrasonic"}, {"name": "enable", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "setEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ultrasonic", "type": "wpilib.Ultrasonic"}, {"name": "enable", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Ultrasonic", "FUNC": "setEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Victor.ts b/src/blocks/generated/class_wpilib.Victor.ts
index 72b8cf4e..1c3442d4 100644
--- a/src/blocks/generated/class_wpilib.Victor.ts
+++ b/src/blocks/generated/class_wpilib.Victor.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myVictor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Victor", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Victor 888 connected via PWM.\n\n:param channel: The PWM channel that the Victor 888 is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Victor"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myVictor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Victor", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Victor 888 connected via PWM.\n\n:param channel: The PWM channel that the Victor 888 is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Victor"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Victor", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.VictorSP.ts b/src/blocks/generated/class_wpilib.VictorSP.ts
index 94436356..16b74e17 100644
--- a/src/blocks/generated/class_wpilib.VictorSP.ts
+++ b/src/blocks/generated/class_wpilib.VictorSP.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myVictorSP"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.VictorSP", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Victor SP connected via PWM.\n\n:param channel: The PWM channel that the Victor SP is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.VictorSP"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myVictorSP"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.VictorSP", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor for a Victor SP connected via PWM.\n\n:param channel: The PWM channel that the Victor SP is attached to. 0-9 are\n on-board, 10-19 are on the MXP port", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.VictorSP"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "follower", "type": "wpilib.PWMMotorController"}], "tooltip": "Make the given PWM motor controller follow the output of this one.\n\n:param follower: The motor controller follower.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "addFollower"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.VictorSP", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "eliminateDeadband", "type": "bool"}], "tooltip": "Optionally eliminate the deadband from a motor controller.\n\n:param eliminateDeadband: If true, set the motor curve on the motor\n controller to eliminate the deadband in the middle\n of the range. Otherwise, keep the full range\n without modifying any values.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "enableDeadbandElimination"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Get the recently set value of the PWM. This value is affected by the\ninversion property. If you want the value that is sent directly to the\nMotorController, use PWM::GetSpeed() instead.\n\n:returns: The most recently set value for the PWM between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getChannel"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "Gets the voltage output of the motor controller, nominally between -12 V\nand 12 V.\n\n:returns: The voltage of the motor controller, nominally between -12 V and 12\n V.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "value", "type": "float"}], "tooltip": "Set the PWM value.\n\nThe PWM value is set using a range of -1.0 to 1.0, appropriately scaling\nthe value for the FPGA.\n\n:param value: The speed value between -1.0 and 1.0 to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the PWMMotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMMotorController", "type": "wpilib.PWMMotorController"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.PWMMotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.Watchdog.ts b/src/blocks/generated/class_wpilib.Watchdog.ts
index af351037..731595d6 100644
--- a/src/blocks/generated/class_wpilib.Watchdog.ts
+++ b/src/blocks/generated/class_wpilib.Watchdog.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWatchdog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.Watchdog", "args": [{"name": "timeout", "type": "wpimath.units.seconds"}, {"name": "callback", "type": "Callable[[], None]"}], "tooltip": "Watchdog constructor.\n\n:param timeout: The watchdog's timeout in seconds with microsecond\n resolution.\n:param callback: This function is called when the timeout expires.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib._wpilib.Watchdog"}, {"name": "epochName", "type": "str"}], "tooltip": "Adds time since last epoch to the list printed by PrintEpochs().\n\nEpochs are a way to partition the time elapsed so that when overruns occur,\none can determine which parts of an operation consumed the most time.\n\n:param epochName: The name to associate with the epoch.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "addEpoch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib._wpilib.Watchdog"}], "tooltip": "Disables the watchdog timer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib._wpilib.Watchdog"}], "tooltip": "Enables the watchdog timer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "enable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "watchdog", "type": "wpilib._wpilib.Watchdog"}], "tooltip": "Returns the time since the watchdog was last fed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "getTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "watchdog", "type": "wpilib._wpilib.Watchdog"}], "tooltip": "Returns the watchdog's timeout.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "getTimeout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "watchdog", "type": "wpilib._wpilib.Watchdog"}], "tooltip": "Returns true if the watchdog timer has expired.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "isExpired"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib._wpilib.Watchdog"}], "tooltip": "Prints list of epochs added so far and their times.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "printEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib._wpilib.Watchdog"}], "tooltip": "Resets the watchdog timer.\n\nThis also enables the timer if it was previously disabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib._wpilib.Watchdog"}, {"name": "timeout", "type": "wpimath.units.seconds"}], "tooltip": "Sets the watchdog's timeout.\n\n:param timeout: The watchdog's timeout in seconds with microsecond\n resolution.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "setTimeout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib._wpilib.Watchdog"}, {"name": "suppress", "type": "bool"}], "tooltip": "Enable or disable suppression of the generic timeout message.\n\nThis may be desirable if the user-provided callback already prints a more\nspecific message.\n\n:param suppress: Whether to suppress generic timeout message.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "suppressTimeoutMessage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWatchdog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.Watchdog", "args": [{"name": "timeout", "type": "wpimath.units.seconds"}, {"name": "callback", "type": "Callable[[], None]"}], "tooltip": "Watchdog constructor.\n\n:param timeout: The watchdog's timeout in seconds with microsecond\n resolution.\n:param callback: This function is called when the timeout expires.", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib.Watchdog"}, {"name": "epochName", "type": "str"}], "tooltip": "Adds time since last epoch to the list printed by PrintEpochs().\n\nEpochs are a way to partition the time elapsed so that when overruns occur,\none can determine which parts of an operation consumed the most time.\n\n:param epochName: The name to associate with the epoch.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "addEpoch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib.Watchdog"}], "tooltip": "Disables the watchdog timer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib.Watchdog"}], "tooltip": "Enables the watchdog timer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "enable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "watchdog", "type": "wpilib.Watchdog"}], "tooltip": "Returns the time since the watchdog was last fed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "getTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "watchdog", "type": "wpilib.Watchdog"}], "tooltip": "Returns the watchdog's timeout.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "getTimeout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "watchdog", "type": "wpilib.Watchdog"}], "tooltip": "Returns true if the watchdog timer has expired.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "isExpired"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib.Watchdog"}], "tooltip": "Prints list of epochs added so far and their times.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "printEpochs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib.Watchdog"}], "tooltip": "Resets the watchdog timer.\n\nThis also enables the timer if it was previously disabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib.Watchdog"}, {"name": "timeout", "type": "wpimath.units.seconds"}], "tooltip": "Sets the watchdog's timeout.\n\n:param timeout: The watchdog's timeout in seconds with microsecond\n resolution.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "setTimeout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "watchdog", "type": "wpilib.Watchdog"}, {"name": "suppress", "type": "bool"}], "tooltip": "Enable or disable suppression of the generic timeout message.\n\nThis may be desirable if the user-provided callback already prints a more\nspecific message.\n\n:param suppress: Whether to suppress generic timeout message.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.Watchdog", "FUNC": "suppressTimeoutMessage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWatchdog"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.XboxController.Axis.ts b/src/blocks/generated/class_wpilib.XboxController.Axis.ts
index a3cbcee5..23552626 100644
--- a/src/blocks/generated/class_wpilib.XboxController.Axis.ts
+++ b/src/blocks/generated/class_wpilib.XboxController.Axis.ts
@@ -19,7 +19,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.XboxController.Axis", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController.Axis", "VAR": "kRightTrigger"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.XboxController.Axis", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController.Axis", "VAR": "kRightX"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.XboxController.Axis", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController.Axis", "VAR": "kRightY"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.XboxController.Axis", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController.Axis"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.XboxController.Axis", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController.Axis"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.XboxController.Button.ts b/src/blocks/generated/class_wpilib.XboxController.Button.ts
index 02ae5c7e..a8d78a32 100644
--- a/src/blocks/generated/class_wpilib.XboxController.Button.ts
+++ b/src/blocks/generated/class_wpilib.XboxController.Button.ts
@@ -23,7 +23,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.XboxController.Button", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController.Button", "VAR": "kStart"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.XboxController.Button", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController.Button", "VAR": "kX"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.XboxController.Button", "varType": "int", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController.Button", "VAR": "kY"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myButton"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.XboxController.Button", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController.Button"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myButton"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.XboxController.Button", "args": [], "tooltip": "", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController.Button"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.XboxController.ts b/src/blocks/generated/class_wpilib.XboxController.ts
index c64cdc6d..844529cf 100644
--- a/src/blocks/generated/class_wpilib.XboxController.ts
+++ b/src/blocks/generated/class_wpilib.XboxController.ts
@@ -11,94 +11,94 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 88 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myXboxController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.XboxController", "args": [{"name": "port", "type": "int"}], "tooltip": "Construct an instance of a controller.\n\nThe controller index is the USB port on the Driver Station.\n\n:param port: The port on the Driver Station that the controller is plugged\n into (0-5).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the A button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the A button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the B button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the B button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "pov", "type": "int"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param pov: index of the POV to read (starting at 0). Defaults to 0.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the center (not pressed) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the center of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 180 degree angle (down)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 180 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDown"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 225 degree angle (down\nleft) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 225 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 135 degree angle (right\ndown) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 135 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 270 degree angle (left)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 270 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 90 degree angle (right)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 90 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 0 degree angle (up) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 0 degree angle of a POV on\n the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 315 degree angle (left\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 315 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 45 degree angle (right\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 45 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the X button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the X button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the Y button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the Y button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is greater\nthan threshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value above which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is greater than\n the provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisGreaterThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is less than\nthreshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value below which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is less than the\n provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisLessThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the back button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the back button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "back"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around this button's digital signal.\n\n:param button: the button index\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the button's digital signal attached\n to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Read the value of the A button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getAButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the A button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getAButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the A button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getAButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of axes for the HID.\n\n:returns: the number of axis for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the axis type of a joystick axis.\n\n:returns: the axis type of a joystick axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Read the value of the B button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getBButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the B button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getBButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the B button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getBButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Read the value of the back button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getBackButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the back button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getBackButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the back button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getBackButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of buttons for the HID.\n\n:returns: the number of buttons on the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Read the value of the left bumper (LB) button on the controller.\n\n:deprecated: Use GetLeftBumperButton instead. This function is deprecated\n for removal to make function names consistent to allow the HID classes to\n be automatically generated.\n\n:returns: the state of the button", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Read the value of the left bumper button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the left bumper button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftBumperButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the left bumper button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftBumperButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the left bumper (LB) was pressed since the last check.\n\n:deprecated: Use GetLeftBumperButtonPressed instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was pressed since the last check", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftBumperPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the left bumper (LB) was released since the last check.\n\n:deprecated: Use GetLeftBumperButtonReleased instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftBumperReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Read the value of the left stick button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the left stick button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftStickButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the left stick button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftStickButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Get the left trigger axis value of the controller. Note that this axis\nis bound to the range of [0, 1] as opposed to the usual [-1, 1].\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftTriggerAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Get the X axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Get the Y axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the name of the HID.\n\n:returns: the name of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "pov", "type": "int"}], "tooltip": "Get the angle in degrees of a POV on the HID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(e.g. right is 90, upper-left is 315).\n\n:param pov: The index of the POV to read (starting at 0)\n\n:returns: the angle of the POV in degrees, or -1 if the POV is not pressed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of POVs for the HID.\n\n:returns: the number of POVs for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the port number of the HID.\n\n:returns: The port number of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis.\n\n:param axis: The axis to read, starting at 0.\n\n:returns: The value of the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Get the button value (starting at button 1).\n\nThe buttons are returned in a single 16 bit value with one bit representing\nthe state of each button. The appropriate button is returned as a boolean\nvalue.\n\nThis method returns true if the button is being held down at the time\nthat this method is being called.\n\n:param button: The button number to be read (starting at 1)\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was pressed since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from not pressed to held down\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you press the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was released since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from held down to not pressed\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you release the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Read the value of the right bumper (RB) button on the controller.\n\n:deprecated: Use GetRightBumperButton instead. This function is deprecated\n for removal to make function names consistent to allow the HID classes to\n be automatically generated.\n\n:returns: the state of the button", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Read the value of the right bumper button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the right bumper button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightBumperButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the right bumper button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightBumperButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the right bumper (RB) was pressed since the last check.\n\n:deprecated: Use GetRightBumperButtonPressed instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was pressed since the last check", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightBumperPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the right bumper (RB) was released since the last check.\n\n:deprecated: Use GetRightBumperButtonReleased instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightBumperReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Read the value of the right stick button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the right stick button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightStickButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the right stick button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightStickButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Get the right trigger axis value of the controller. Note that this axis\nis bound to the range of [0, 1] as opposed to the usual [-1, 1].\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightTriggerAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Get the X axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Get the Y axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Read the value of the start button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getStartButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the start button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getStartButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the start button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getStartButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHIDType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.interfaces._interfaces.GenericHID.HIDType", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the type of the HID.\n\n:returns: the type of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Read the value of the X button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getXButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the X button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getXButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the X button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getXButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Read the value of the Y button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getYButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the Y button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getYButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Whether the Y button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getYButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get if the HID is connected.\n\n:returns: true if the HID is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the left bumper button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left bumper button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "leftBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the left stick button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left stick button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "leftStick"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the axis value of the left trigger.\nThe returned trigger will be true when the axis value is greater than\n``threshold``.\n\n:param threshold: the minimum axis value for the returned event to be true.\n This value should be in the range [0, 1] where 0 is the unpressed state of\n the axis.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the left trigger's axis\n exceeds the provided threshold, attached to the given event loop", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "leftTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the axis value of the left trigger.\nThe returned trigger will be true when the axis value is greater than 0.5.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the left trigger's axis\n exceeds 0.5, attached to the given event loop", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "leftTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the right bumper button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right bumper button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "rightBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the right stick button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right stick button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "rightStick"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the axis value of the right trigger.\nThe returned trigger will be true when the axis value is greater than\n``threshold``.\n\n:param threshold: the minimum axis value for the returned event to be true.\n This value should be in the range [0, 1] where 0 is the unpressed state of\n the axis.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the right trigger's axis\n exceeds the provided threshold, attached to the given event loop", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "rightTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the axis value of the right trigger.\nThe returned trigger will be true when the axis value is greater than 0.5.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the right trigger's axis\n exceeds 0.5, attached to the given event loop", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "rightTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "outputNumber", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set a single HID output value for the HID.\n\n:param outputNumber: The index of the output to set (1-32)\n:param value: The value to set the output to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "value", "type": "int"}], "tooltip": "Set all output values for the HID.\n\n:param value: The 32 bit output value (1 bit for each output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.RumbleType"}, {"name": "value", "type": "float"}], "tooltip": "Set the rumble output for the HID.\n\nThe DS currently supports 2 rumble values, left rumble and right rumble.\n\n:param type: Which rumble value to set\n:param value: The normalized value (0 to 1) to set the rumble to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib._wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around the start button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the start button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "start"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myXboxController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.XboxController", "args": [{"name": "port", "type": "int"}], "tooltip": "Construct an instance of a controller.\n\nThe controller index is the USB port on the Driver Station.\n\n:param port: The port on the Driver Station that the controller is plugged\n into (0-5).", "importModule": "wpilib"}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the A button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the A button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the B button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the B button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "pov", "type": "int"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param pov: index of the POV to read (starting at 0). Defaults to 0.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the center (not pressed) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the center of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 180 degree angle (down)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 180 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDown"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 225 degree angle (down\nleft) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 225 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 135 degree angle (right\ndown) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 135 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 270 degree angle (left)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 270 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 90 degree angle (right)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 90 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 0 degree angle (up) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 0 degree angle of a POV on\n the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 315 degree angle (left\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 315 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 45 degree angle (right\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 45 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the X button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the X button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the Y button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the Y button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is greater\nthan threshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value above which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is greater than\n the provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisGreaterThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is less than\nthreshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value below which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is less than the\n provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisLessThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the back button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the back button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "back"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around this button's digital signal.\n\n:param button: the button index\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the button's digital signal attached\n to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Read the value of the A button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getAButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the A button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getAButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the A button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getAButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of axes for the HID.\n\n:returns: the number of axis for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the axis type of a joystick axis.\n\n:returns: the axis type of a joystick axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Read the value of the B button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getBButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the B button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getBButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the B button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getBButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Read the value of the back button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getBackButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the back button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getBackButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the back button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getBackButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of buttons for the HID.\n\n:returns: the number of buttons on the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Read the value of the left bumper (LB) button on the controller.\n\n:deprecated: Use GetLeftBumperButton instead. This function is deprecated\n for removal to make function names consistent to allow the HID classes to\n be automatically generated.\n\n:returns: the state of the button", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Read the value of the left bumper button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the left bumper button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftBumperButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the left bumper button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftBumperButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the left bumper (LB) was pressed since the last check.\n\n:deprecated: Use GetLeftBumperButtonPressed instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was pressed since the last check", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftBumperPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the left bumper (LB) was released since the last check.\n\n:deprecated: Use GetLeftBumperButtonReleased instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftBumperReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Read the value of the left stick button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the left stick button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftStickButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the left stick button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftStickButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Get the left trigger axis value of the controller. Note that this axis\nis bound to the range of [0, 1] as opposed to the usual [-1, 1].\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftTriggerAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Get the X axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Get the Y axis value of left side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the name of the HID.\n\n:returns: the name of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "pov", "type": "int"}], "tooltip": "Get the angle in degrees of a POV on the HID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(e.g. right is 90, upper-left is 315).\n\n:param pov: The index of the POV to read (starting at 0)\n\n:returns: the angle of the POV in degrees, or -1 if the POV is not pressed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of POVs for the HID.\n\n:returns: the number of POVs for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the port number of the HID.\n\n:returns: The port number of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis.\n\n:param axis: The axis to read, starting at 0.\n\n:returns: The value of the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Get the button value (starting at button 1).\n\nThe buttons are returned in a single 16 bit value with one bit representing\nthe state of each button. The appropriate button is returned as a boolean\nvalue.\n\nThis method returns true if the button is being held down at the time\nthat this method is being called.\n\n:param button: The button number to be read (starting at 1)\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was pressed since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from not pressed to held down\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you press the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was released since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from held down to not pressed\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you release the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Read the value of the right bumper (RB) button on the controller.\n\n:deprecated: Use GetRightBumperButton instead. This function is deprecated\n for removal to make function names consistent to allow the HID classes to\n be automatically generated.\n\n:returns: the state of the button", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Read the value of the right bumper button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the right bumper button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightBumperButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the right bumper button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightBumperButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the right bumper (RB) was pressed since the last check.\n\n:deprecated: Use GetRightBumperButtonPressed instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was pressed since the last check", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightBumperPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the right bumper (RB) was released since the last check.\n\n:deprecated: Use GetRightBumperButtonReleased instead. This function is\n deprecated for removal to make function names consistent to allow the HID\n classes to be automatically generated.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightBumperReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Read the value of the right stick button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the right stick button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightStickButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the right stick button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightStickButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Get the right trigger axis value of the controller. Note that this axis\nis bound to the range of [0, 1] as opposed to the usual [-1, 1].\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightTriggerAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Get the X axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Get the Y axis value of right side of the controller.\n\n:returns: the axis value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Read the value of the start button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getStartButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the start button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getStartButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the start button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getStartButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHIDType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.interfaces.GenericHID.HIDType", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the type of the HID.\n\n:returns: the type of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Read the value of the X button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getXButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the X button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getXButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the X button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getXButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Read the value of the Y button on the controller.\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getYButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the Y button was pressed since the last check.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getYButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}], "tooltip": "Whether the Y button was released since the last check.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "getYButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get if the HID is connected.\n\n:returns: true if the HID is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the left bumper button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left bumper button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "leftBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the left stick button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the left stick button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "leftStick"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the axis value of the left trigger.\nThe returned trigger will be true when the axis value is greater than\n``threshold``.\n\n:param threshold: the minimum axis value for the returned event to be true.\n This value should be in the range [0, 1] where 0 is the unpressed state of\n the axis.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the left trigger's axis\n exceeds the provided threshold, attached to the given event loop", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "leftTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the axis value of the left trigger.\nThe returned trigger will be true when the axis value is greater than 0.5.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the left trigger's axis\n exceeds 0.5, attached to the given event loop", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "leftTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the right bumper button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right bumper button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "rightBumper"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the right stick button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the right stick button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "rightStick"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the axis value of the right trigger.\nThe returned trigger will be true when the axis value is greater than\n``threshold``.\n\n:param threshold: the minimum axis value for the returned event to be true.\n This value should be in the range [0, 1] where 0 is the unpressed state of\n the axis.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the right trigger's axis\n exceeds the provided threshold, attached to the given event loop", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "rightTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the axis value of the right trigger.\nThe returned trigger will be true when the axis value is greater than 0.5.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the right trigger's axis\n exceeds 0.5, attached to the given event loop", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "rightTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "outputNumber", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set a single HID output value for the HID.\n\n:param outputNumber: The index of the output to set (1-32)\n:param value: The value to set the output to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "value", "type": "int"}], "tooltip": "Set all output values for the HID.\n\n:param value: The 32 bit output value (1 bit for each output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.RumbleType"}, {"name": "value", "type": "float"}], "tooltip": "Set the rumble output for the HID.\n\nThe DS currently supports 2 rumble values, left rumble and right rumble.\n\n:param type: Which rumble value to set\n:param value: The normalized value (0 to 1) to set the rumble to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "xboxController", "type": "wpilib.XboxController"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around the start button's\ndigital signal.\n\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the start button's\n digital signal attached to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.XboxController", "FUNC": "start"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.counter.ExternalDirectionCounter.ts b/src/blocks/generated/class_wpilib.counter.ExternalDirectionCounter.ts
index 9bd7aa61..a5728b0d 100644
--- a/src/blocks/generated/class_wpilib.counter.ExternalDirectionCounter.ts
+++ b/src/blocks/generated/class_wpilib.counter.ExternalDirectionCounter.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExternalDirectionCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.counter._counter.ExternalDirectionCounter", "args": [{"name": "countSource", "type": "wpilib._wpilib.DigitalSource"}, {"name": "directionSource", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Constructs a new ExternalDirectionCounter.\n\n:param countSource: The source for counting.\n:param directionSource: The source for selecting count direction.", "importModule": "wpilib.counter"}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.ExternalDirectionCounter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExternalDirectionCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.counter._counter.ExternalDirectionCounter", "args": [{"name": "countSource", "type": "wpilib._wpilib.DigitalSource"}, {"name": "directionSource", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Constructs a new ExternalDirectionCounter.\n\n:param countSource: The source for counting.\n:param directionSource: The source for selecting count direction.", "importModule": "wpilib.counter"}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.ExternalDirectionCounter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "externalDirectionCounter", "type": "wpilib.counter._counter.ExternalDirectionCounter"}], "tooltip": "Gets the current count.\n\n:returns: The current count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.ExternalDirectionCounter", "FUNC": "getCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExternalDirectionCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "externalDirectionCounter", "type": "wpilib.counter._counter.ExternalDirectionCounter"}], "tooltip": "Resets the current count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.ExternalDirectionCounter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExternalDirectionCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "externalDirectionCounter", "type": "wpilib.counter._counter.ExternalDirectionCounter"}, {"name": "configuration", "type": "wpilib.counter._counter.EdgeConfiguration"}], "tooltip": "Sets the edge configuration for counting.\n\n:param configuration: The counting edge configuration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.ExternalDirectionCounter", "FUNC": "setEdgeConfiguration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExternalDirectionCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEdgeConfiguration"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "externalDirectionCounter", "type": "wpilib.counter._counter.ExternalDirectionCounter"}, {"name": "reverseDirection", "type": "bool"}], "tooltip": "Sets to reverse the counter direction.\n\n:param reverseDirection: True to reverse counting direction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.ExternalDirectionCounter", "FUNC": "setReverseDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExternalDirectionCounter"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExternalDirectionCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.counter.ExternalDirectionCounter", "args": [{"name": "countSource", "type": "wpilib.DigitalSource"}, {"name": "directionSource", "type": "wpilib.DigitalSource"}], "tooltip": "Constructs a new ExternalDirectionCounter.\n\n:param countSource: The source for counting.\n:param directionSource: The source for selecting count direction.", "importModule": "wpilib.counter"}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.ExternalDirectionCounter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExternalDirectionCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.counter.ExternalDirectionCounter", "args": [{"name": "countSource", "type": "wpilib.DigitalSource"}, {"name": "directionSource", "type": "wpilib.DigitalSource"}], "tooltip": "Constructs a new ExternalDirectionCounter.\n\n:param countSource: The source for counting.\n:param directionSource: The source for selecting count direction.", "importModule": "wpilib.counter"}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.ExternalDirectionCounter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "externalDirectionCounter", "type": "wpilib.counter.ExternalDirectionCounter"}], "tooltip": "Gets the current count.\n\n:returns: The current count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.ExternalDirectionCounter", "FUNC": "getCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExternalDirectionCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "externalDirectionCounter", "type": "wpilib.counter.ExternalDirectionCounter"}], "tooltip": "Resets the current count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.ExternalDirectionCounter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExternalDirectionCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "externalDirectionCounter", "type": "wpilib.counter.ExternalDirectionCounter"}, {"name": "configuration", "type": "wpilib.counter.EdgeConfiguration"}], "tooltip": "Sets the edge configuration for counting.\n\n:param configuration: The counting edge configuration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.ExternalDirectionCounter", "FUNC": "setEdgeConfiguration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExternalDirectionCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEdgeConfiguration"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "externalDirectionCounter", "type": "wpilib.counter.ExternalDirectionCounter"}, {"name": "reverseDirection", "type": "bool"}], "tooltip": "Sets to reverse the counter direction.\n\n:param reverseDirection: True to reverse counting direction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.ExternalDirectionCounter", "FUNC": "setReverseDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExternalDirectionCounter"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.counter.Tachometer.ts b/src/blocks/generated/class_wpilib.counter.Tachometer.ts
index 4e26122c..ae3ad222 100644
--- a/src/blocks/generated/class_wpilib.counter.Tachometer.ts
+++ b/src/blocks/generated/class_wpilib.counter.Tachometer.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTachometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.counter._counter.Tachometer", "args": [{"name": "source", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Constructs a new tachometer.\n\n:param source: The source.", "importModule": "wpilib.counter"}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTachometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.counter._counter.Tachometer", "args": [{"name": "source", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Constructs a new tachometer.\n\n:param source: The source.", "importModule": "wpilib.counter"}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "tachometer", "type": "wpilib.counter._counter.Tachometer"}], "tooltip": "Gets the number of edges per revolution.\n\n:returns: Edges per revolution.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getEdgesPerRevolution"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.hertz", "args": [{"name": "tachometer", "type": "wpilib.counter._counter.Tachometer"}], "tooltip": "Gets the tachometer frequency.\n\n:returns: Current frequency.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getFrequency"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "tachometer", "type": "wpilib.counter._counter.Tachometer"}], "tooltip": "Gets the tachometer period.\n\n:returns: Current period.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.revolutions_per_minute", "args": [{"name": "tachometer", "type": "wpilib.counter._counter.Tachometer"}], "tooltip": "Gets the current tachometer revolutions per minute.\n\nSetEdgesPerRevolution must be set with a non 0 value for this to work.\n\n:returns: Current RPM.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getRevolutionsPerMinute"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.turns_per_second", "args": [{"name": "tachometer", "type": "wpilib.counter._counter.Tachometer"}], "tooltip": "Gets the current tachometer revolutions per second.\n\nSetEdgesPerRevolution must be set with a non 0 value for this to work.\n\n:returns: Current RPS.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getRevolutionsPerSecond"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "tachometer", "type": "wpilib.counter._counter.Tachometer"}], "tooltip": "Gets the number of sample to average.\n\n:returns: Samples to average.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "tachometer", "type": "wpilib.counter._counter.Tachometer"}], "tooltip": "Gets if the tachometer is stopped.\n\n:returns: True if the tachometer is stopped.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getStopped"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tachometer", "type": "wpilib.counter._counter.Tachometer"}, {"name": "edges", "type": "int"}], "tooltip": "Sets the number of edges per revolution.\n\n:param edges: Edges per revolution.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "setEdgesPerRevolution"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tachometer", "type": "wpilib.counter._counter.Tachometer"}, {"name": "maxPeriod", "type": "wpimath.units.seconds"}], "tooltip": "Sets the maximum period before the tachometer is considered stopped.\n\n:param maxPeriod: The max period.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "setMaxPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tachometer", "type": "wpilib.counter._counter.Tachometer"}, {"name": "samples", "type": "int"}], "tooltip": "Sets the number of samples to average.\n\n:param samples: Samples to average.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "setSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tachometer", "type": "wpilib.counter._counter.Tachometer"}, {"name": "updateWhenEmpty", "type": "bool"}], "tooltip": "Sets if to update when empty.\n\n:param updateWhenEmpty: True to update when empty.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "setUpdateWhenEmpty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTachometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.counter.Tachometer", "args": [{"name": "source", "type": "wpilib.DigitalSource"}], "tooltip": "Constructs a new tachometer.\n\n:param source: The source.", "importModule": "wpilib.counter"}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTachometer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.counter.Tachometer", "args": [{"name": "source", "type": "wpilib.DigitalSource"}], "tooltip": "Constructs a new tachometer.\n\n:param source: The source.", "importModule": "wpilib.counter"}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "tachometer", "type": "wpilib.counter.Tachometer"}], "tooltip": "Gets the number of edges per revolution.\n\n:returns: Edges per revolution.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getEdgesPerRevolution"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.hertz", "args": [{"name": "tachometer", "type": "wpilib.counter.Tachometer"}], "tooltip": "Gets the tachometer frequency.\n\n:returns: Current frequency.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getFrequency"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "tachometer", "type": "wpilib.counter.Tachometer"}], "tooltip": "Gets the tachometer period.\n\n:returns: Current period.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.revolutions_per_minute", "args": [{"name": "tachometer", "type": "wpilib.counter.Tachometer"}], "tooltip": "Gets the current tachometer revolutions per minute.\n\nSetEdgesPerRevolution must be set with a non 0 value for this to work.\n\n:returns: Current RPM.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getRevolutionsPerMinute"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.turns_per_second", "args": [{"name": "tachometer", "type": "wpilib.counter.Tachometer"}], "tooltip": "Gets the current tachometer revolutions per second.\n\nSetEdgesPerRevolution must be set with a non 0 value for this to work.\n\n:returns: Current RPS.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getRevolutionsPerSecond"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "tachometer", "type": "wpilib.counter.Tachometer"}], "tooltip": "Gets the number of sample to average.\n\n:returns: Samples to average.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "tachometer", "type": "wpilib.counter.Tachometer"}], "tooltip": "Gets if the tachometer is stopped.\n\n:returns: True if the tachometer is stopped.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "getStopped"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tachometer", "type": "wpilib.counter.Tachometer"}, {"name": "edges", "type": "int"}], "tooltip": "Sets the number of edges per revolution.\n\n:param edges: Edges per revolution.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "setEdgesPerRevolution"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tachometer", "type": "wpilib.counter.Tachometer"}, {"name": "maxPeriod", "type": "wpimath.units.seconds"}], "tooltip": "Sets the maximum period before the tachometer is considered stopped.\n\n:param maxPeriod: The max period.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "setMaxPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tachometer", "type": "wpilib.counter.Tachometer"}, {"name": "samples", "type": "int"}], "tooltip": "Sets the number of samples to average.\n\n:param samples: Samples to average.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "setSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "tachometer", "type": "wpilib.counter.Tachometer"}, {"name": "updateWhenEmpty", "type": "bool"}], "tooltip": "Sets if to update when empty.\n\n:param updateWhenEmpty: True to update when empty.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.Tachometer", "FUNC": "setUpdateWhenEmpty"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTachometer"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.counter.UpDownCounter.ts b/src/blocks/generated/class_wpilib.counter.UpDownCounter.ts
index e00e3e29..fa30bd24 100644
--- a/src/blocks/generated/class_wpilib.counter.UpDownCounter.ts
+++ b/src/blocks/generated/class_wpilib.counter.UpDownCounter.ts
@@ -11,14 +11,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 8 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myUpDownCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.counter._counter.UpDownCounter", "args": [{"name": "upSource", "type": "wpilib._wpilib.DigitalSource"}, {"name": "downSource", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Constructs a new UpDown Counter.\n\n:param upSource: The up count source (can be null).\n:param downSource: The down count source (can be null).", "importModule": "wpilib.counter"}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myUpDownCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.counter._counter.UpDownCounter", "args": [{"name": "upSource", "type": "wpilib._wpilib.DigitalSource"}, {"name": "downSource", "type": "wpilib._wpilib.DigitalSource"}], "tooltip": "Constructs a new UpDown Counter.\n\n:param upSource: The up count source (can be null).\n:param downSource: The down count source (can be null).", "importModule": "wpilib.counter"}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "upDownCounter", "type": "wpilib.counter._counter.UpDownCounter"}], "tooltip": "Gets the current count.\n\n:returns: The current count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter", "FUNC": "getCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUpDownCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "upDownCounter", "type": "wpilib.counter._counter.UpDownCounter"}], "tooltip": "Resets the current count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUpDownCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "upDownCounter", "type": "wpilib.counter._counter.UpDownCounter"}, {"name": "configuration", "type": "wpilib.counter._counter.EdgeConfiguration"}], "tooltip": "Sets the configuration for the down source.\n\n:param configuration: The down source configuration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter", "FUNC": "setDownEdgeConfiguration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUpDownCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEdgeConfiguration"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "upDownCounter", "type": "wpilib.counter._counter.UpDownCounter"}, {"name": "reverseDirection", "type": "bool"}], "tooltip": "Sets to revert the counter direction.\n\n:param reverseDirection: True to reverse counting direction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter", "FUNC": "setReverseDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUpDownCounter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "upDownCounter", "type": "wpilib.counter._counter.UpDownCounter"}, {"name": "configuration", "type": "wpilib.counter._counter.EdgeConfiguration"}], "tooltip": "Sets the configuration for the up source.\n\n:param configuration: The up source configuration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter", "FUNC": "setUpEdgeConfiguration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUpDownCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEdgeConfiguration"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myUpDownCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.counter.UpDownCounter", "args": [{"name": "upSource", "type": "wpilib.DigitalSource"}, {"name": "downSource", "type": "wpilib.DigitalSource"}], "tooltip": "Constructs a new UpDown Counter.\n\n:param upSource: The up count source (can be null).\n:param downSource: The down count source (can be null).", "importModule": "wpilib.counter"}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myUpDownCounter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.counter.UpDownCounter", "args": [{"name": "upSource", "type": "wpilib.DigitalSource"}, {"name": "downSource", "type": "wpilib.DigitalSource"}], "tooltip": "Constructs a new UpDown Counter.\n\n:param upSource: The up count source (can be null).\n:param downSource: The down count source (can be null).", "importModule": "wpilib.counter"}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalSource"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "upDownCounter", "type": "wpilib.counter.UpDownCounter"}], "tooltip": "Gets the current count.\n\n:returns: The current count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter", "FUNC": "getCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUpDownCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendable", "type": "wpiutil.Sendable"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "Initializes this Sendable object.\n\n:param builder: sendable builder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpiutil.Sendable", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "upDownCounter", "type": "wpilib.counter.UpDownCounter"}], "tooltip": "Resets the current count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUpDownCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "upDownCounter", "type": "wpilib.counter.UpDownCounter"}, {"name": "configuration", "type": "wpilib.counter.EdgeConfiguration"}], "tooltip": "Sets the configuration for the down source.\n\n:param configuration: The down source configuration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter", "FUNC": "setDownEdgeConfiguration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUpDownCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEdgeConfiguration"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "upDownCounter", "type": "wpilib.counter.UpDownCounter"}, {"name": "reverseDirection", "type": "bool"}], "tooltip": "Sets to revert the counter direction.\n\n:param reverseDirection: True to reverse counting direction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter", "FUNC": "setReverseDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUpDownCounter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "upDownCounter", "type": "wpilib.counter.UpDownCounter"}, {"name": "configuration", "type": "wpilib.counter.EdgeConfiguration"}], "tooltip": "Sets the configuration for the up source.\n\n:param configuration: The up source configuration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.counter.UpDownCounter", "FUNC": "setUpEdgeConfiguration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUpDownCounter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEdgeConfiguration"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.drive.DifferentialDrive.WheelSpeeds.ts b/src/blocks/generated/class_wpilib.drive.DifferentialDrive.WheelSpeeds.ts
index a988d04b..9a0b9d7b 100644
--- a/src/blocks/generated/class_wpilib.drive.DifferentialDrive.WheelSpeeds.ts
+++ b/src/blocks/generated/class_wpilib.drive.DifferentialDrive.WheelSpeeds.ts
@@ -19,7 +19,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.drive.DifferentialDrive.WheelSpeeds", "varType": "float", "importModule": "", "selfLabel": "wheelSpeeds", "selfType": "wpilib.drive.DifferentialDrive.WheelSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive.WheelSpeeds", "VAR": "left"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWheelSpeeds"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.drive.DifferentialDrive.WheelSpeeds", "varType": "float", "importModule": "", "selfLabel": "wheelSpeeds", "selfType": "wpilib.drive.DifferentialDrive.WheelSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive.WheelSpeeds", "VAR": "right"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWheelSpeeds"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.drive.DifferentialDrive.WheelSpeeds", "varType": "float", "importModule": "", "selfLabel": "wheelSpeeds", "selfType": "wpilib.drive.DifferentialDrive.WheelSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive.WheelSpeeds", "VAR": "right"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWheelSpeeds"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive._drive.DifferentialDrive.WheelSpeeds", "args": [], "tooltip": "", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive.WheelSpeeds"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive.DifferentialDrive.WheelSpeeds", "args": [], "tooltip": "", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive.WheelSpeeds"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.drive.DifferentialDrive.ts b/src/blocks/generated/class_wpilib.drive.DifferentialDrive.ts
index 4318dd53..1525a9d9 100644
--- a/src/blocks/generated/class_wpilib.drive.DifferentialDrive.ts
+++ b/src/blocks/generated/class_wpilib.drive.DifferentialDrive.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrive"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive._drive.DifferentialDrive", "args": [{"name": "leftMotor", "type": "wpilib.interfaces._interfaces.MotorController"}, {"name": "rightMotor", "type": "wpilib.interfaces._interfaces.MotorController"}], "tooltip": "Construct a DifferentialDrive.\n\nTo pass multiple motors per side, use CAN motor controller followers or\nPWMSpeedController::AddFollower(). If a motor needs to be inverted, do so\nbefore passing it in.\n\n:param leftMotor: Left motor.\n:param rightMotor: Right motor.", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrive"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive._drive.DifferentialDrive", "args": [{"name": "leftMotor", "type": "Callable[[float], None]"}, {"name": "rightMotor", "type": "Callable[[float], None]"}], "tooltip": "Construct a DifferentialDrive.\n\nTo pass multiple motors per side, use CAN motor controller followers or\nPWMSpeedController::AddFollower(). If a motor needs to be inverted, do so\nbefore passing it in.\n\n:param leftMotor: Left motor setter.\n:param rightMotor: Right motor setter.", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrive", "type": "wpilib.drive._drive.DifferentialDrive"}, {"name": "xSpeed", "type": "float"}, {"name": "zRotation", "type": "float"}, {"name": "squareInputs", "type": "bool"}], "tooltip": "Arcade drive method for differential drive platform.\n\nNote: Some drivers may prefer inverted rotation controls. This can be done\nby negating the value passed for rotation.\n\n:param xSpeed: The speed at which the robot should drive along the X\n axis [-1.0..1.0]. Forward is positive.\n:param zRotation: The rotation rate of the robot around the Z axis\n [-1.0..1.0]. Counterclockwise is positive.\n:param squareInputs: If set, decreases the input sensitivity at low speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "arcadeDrive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrive"}}}}, "ARG3": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.drive._drive.DifferentialDrive.WheelSpeeds", "args": [{"name": "xSpeed", "type": "float"}, {"name": "zRotation", "type": "float"}, {"name": "squareInputs", "type": "bool"}], "tooltip": "Arcade drive inverse kinematics for differential drive platform.\n\nNote: Some drivers may prefer inverted rotation controls. This can be done\nby negating the value passed for rotation.\n\n:param xSpeed: The speed at which the robot should drive along the X\n axis [-1.0..1.0]. Forward is positive.\n:param zRotation: The rotation rate of the robot around the Z axis\n [-1.0..1.0]. Clockwise is positive.\n:param squareInputs: If set, decreases the input sensitivity at low speeds.\n\n:returns: Wheel speeds [-1.0..1.0].", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "arcadeDriveIK"}, "inputs": {"ARG2": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrive"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive.DifferentialDrive", "args": [{"name": "leftMotor", "type": "wpilib.interfaces.MotorController"}, {"name": "rightMotor", "type": "wpilib.interfaces.MotorController"}], "tooltip": "Construct a DifferentialDrive.\n\nTo pass multiple motors per side, use CAN motor controller followers or\nPWMSpeedController::AddFollower(). If a motor needs to be inverted, do so\nbefore passing it in.\n\n:param leftMotor: Left motor.\n:param rightMotor: Right motor.", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrive"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive.DifferentialDrive", "args": [{"name": "leftMotor", "type": "Callable[[float], None]"}, {"name": "rightMotor", "type": "Callable[[float], None]"}], "tooltip": "Construct a DifferentialDrive.\n\nTo pass multiple motors per side, use CAN motor controller followers or\nPWMSpeedController::AddFollower(). If a motor needs to be inverted, do so\nbefore passing it in.\n\n:param leftMotor: Left motor setter.\n:param rightMotor: Right motor setter.", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrive", "type": "wpilib.drive.DifferentialDrive"}, {"name": "xSpeed", "type": "float"}, {"name": "zRotation", "type": "float"}, {"name": "squareInputs", "type": "bool"}], "tooltip": "Arcade drive method for differential drive platform.\n\nNote: Some drivers may prefer inverted rotation controls. This can be done\nby negating the value passed for rotation.\n\n:param xSpeed: The speed at which the robot should drive along the X\n axis [-1.0..1.0]. Forward is positive.\n:param zRotation: The rotation rate of the robot around the Z axis\n [-1.0..1.0]. Counterclockwise is positive.\n:param squareInputs: If set, decreases the input sensitivity at low speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "arcadeDrive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrive"}}}}, "ARG3": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.drive.DifferentialDrive.WheelSpeeds", "args": [{"name": "xSpeed", "type": "float"}, {"name": "zRotation", "type": "float"}, {"name": "squareInputs", "type": "bool"}], "tooltip": "Arcade drive inverse kinematics for differential drive platform.\n\nNote: Some drivers may prefer inverted rotation controls. This can be done\nby negating the value passed for rotation.\n\n:param xSpeed: The speed at which the robot should drive along the X\n axis [-1.0..1.0]. Forward is positive.\n:param zRotation: The rotation rate of the robot around the Z axis\n [-1.0..1.0]. Clockwise is positive.\n:param squareInputs: If set, decreases the input sensitivity at low speeds.\n\n:returns: Wheel speeds [-1.0..1.0].", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "arcadeDriveIK"}, "inputs": {"ARG2": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrive", "type": "wpilib.drive._drive.DifferentialDrive"}, {"name": "xSpeed", "type": "float"}, {"name": "zRotation", "type": "float"}, {"name": "allowTurnInPlace", "type": "bool"}], "tooltip": "Curvature drive method for differential drive platform.\n\nThe rotation argument controls the curvature of the robot's path rather\nthan its rate of heading change. This makes the robot more controllable at\nhigh speeds.\n\n:param xSpeed: The robot's speed along the X axis [-1.0..1.0].\n Forward is positive.\n:param zRotation: The normalized curvature [-1.0..1.0].\n Counterclockwise is positive.\n:param allowTurnInPlace: If set, overrides constant-curvature turning for\n turn-in-place maneuvers. zRotation will control\n turning rate instead of curvature.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "curvatureDrive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrive"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.drive._drive.DifferentialDrive.WheelSpeeds", "args": [{"name": "xSpeed", "type": "float"}, {"name": "zRotation", "type": "float"}, {"name": "allowTurnInPlace", "type": "bool"}], "tooltip": "Curvature drive inverse kinematics for differential drive platform.\n\nThe rotation argument controls the curvature of the robot's path rather\nthan its rate of heading change. This makes the robot more controllable at\nhigh speeds.\n\n:param xSpeed: The robot's speed along the X axis [-1.0..1.0].\n Forward is positive.\n:param zRotation: The normalized curvature [-1.0..1.0]. Clockwise is\n positive.\n:param allowTurnInPlace: If set, overrides constant-curvature turning for\n turn-in-place maneuvers. zRotation will control\n turning rate instead of curvature.\n\n:returns: Wheel speeds [-1.0..1.0].", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "curvatureDriveIK"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive._drive.RobotDriveBase"}], "tooltip": "Feed the motor safety object. Resets the timer that will stop the motors if\nit completes.\n\n@see MotorSafetyHelper::Feed()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "feedWatchdog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "differentialDrive", "type": "wpilib.drive._drive.DifferentialDrive"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrive"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrive", "type": "wpilib.drive._drive.DifferentialDrive"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrive"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive._drive.RobotDriveBase"}, {"name": "deadband", "type": "float"}], "tooltip": "Sets the deadband applied to the drive inputs (e.g., joystick values).\n\nThe default value is 0.02. Inputs smaller than the deadband are set to 0.0\nwhile inputs larger than the deadband are scaled from 0.0 to 1.0. See\nfrc::ApplyDeadband().\n\n:param deadband: The deadband to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "setDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive._drive.RobotDriveBase"}, {"name": "maxOutput", "type": "float"}], "tooltip": "Configure the scaling factor for using RobotDrive with motor controllers in\na mode other than PercentVbus or to limit the maximum output.\n\n:param maxOutput: Multiplied with the output percentage computed by the\n drive functions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "setMaxOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrive", "type": "wpilib.drive._drive.DifferentialDrive"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrive"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrive", "type": "wpilib.drive._drive.DifferentialDrive"}, {"name": "leftSpeed", "type": "float"}, {"name": "rightSpeed", "type": "float"}, {"name": "squareInputs", "type": "bool"}], "tooltip": "Tank drive method for differential drive platform.\n\n:param leftSpeed: The robot left side's speed along the X axis\n [-1.0..1.0]. Forward is positive.\n:param rightSpeed: The robot right side's speed along the X axis\n [-1.0..1.0]. Forward is positive.\n:param squareInputs: If set, decreases the input sensitivity at low speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "tankDrive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrive"}}}}, "ARG3": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.drive._drive.DifferentialDrive.WheelSpeeds", "args": [{"name": "leftSpeed", "type": "float"}, {"name": "rightSpeed", "type": "float"}, {"name": "squareInputs", "type": "bool"}], "tooltip": "Tank drive inverse kinematics for differential drive platform.\n\n:param leftSpeed: The robot left side's speed along the X axis\n [-1.0..1.0]. Forward is positive.\n:param rightSpeed: The robot right side's speed along the X axis\n [-1.0..1.0]. Forward is positive.\n:param squareInputs: If set, decreases the input sensitivity at low speeds.\n\n:returns: Wheel speeds [-1.0..1.0].", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "tankDriveIK"}, "inputs": {"ARG2": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrive", "type": "wpilib.drive.DifferentialDrive"}, {"name": "xSpeed", "type": "float"}, {"name": "zRotation", "type": "float"}, {"name": "allowTurnInPlace", "type": "bool"}], "tooltip": "Curvature drive method for differential drive platform.\n\nThe rotation argument controls the curvature of the robot's path rather\nthan its rate of heading change. This makes the robot more controllable at\nhigh speeds.\n\n:param xSpeed: The robot's speed along the X axis [-1.0..1.0].\n Forward is positive.\n:param zRotation: The normalized curvature [-1.0..1.0].\n Counterclockwise is positive.\n:param allowTurnInPlace: If set, overrides constant-curvature turning for\n turn-in-place maneuvers. zRotation will control\n turning rate instead of curvature.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "curvatureDrive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrive"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.drive.DifferentialDrive.WheelSpeeds", "args": [{"name": "xSpeed", "type": "float"}, {"name": "zRotation", "type": "float"}, {"name": "allowTurnInPlace", "type": "bool"}], "tooltip": "Curvature drive inverse kinematics for differential drive platform.\n\nThe rotation argument controls the curvature of the robot's path rather\nthan its rate of heading change. This makes the robot more controllable at\nhigh speeds.\n\n:param xSpeed: The robot's speed along the X axis [-1.0..1.0].\n Forward is positive.\n:param zRotation: The normalized curvature [-1.0..1.0]. Clockwise is\n positive.\n:param allowTurnInPlace: If set, overrides constant-curvature turning for\n turn-in-place maneuvers. zRotation will control\n turning rate instead of curvature.\n\n:returns: Wheel speeds [-1.0..1.0].", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "curvatureDriveIK"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive.RobotDriveBase"}], "tooltip": "Feed the motor safety object. Resets the timer that will stop the motors if\nit completes.\n\n@see MotorSafetyHelper::Feed()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "feedWatchdog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "differentialDrive", "type": "wpilib.drive.DifferentialDrive"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrive"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrive", "type": "wpilib.drive.DifferentialDrive"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrive"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive.RobotDriveBase"}, {"name": "deadband", "type": "float"}], "tooltip": "Sets the deadband applied to the drive inputs (e.g., joystick values).\n\nThe default value is 0.02. Inputs smaller than the deadband are set to 0.0\nwhile inputs larger than the deadband are scaled from 0.0 to 1.0. See\nfrc::ApplyDeadband().\n\n:param deadband: The deadband to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "setDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive.RobotDriveBase"}, {"name": "maxOutput", "type": "float"}], "tooltip": "Configure the scaling factor for using RobotDrive with motor controllers in\na mode other than PercentVbus or to limit the maximum output.\n\n:param maxOutput: Multiplied with the output percentage computed by the\n drive functions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "setMaxOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrive", "type": "wpilib.drive.DifferentialDrive"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrive"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrive", "type": "wpilib.drive.DifferentialDrive"}, {"name": "leftSpeed", "type": "float"}, {"name": "rightSpeed", "type": "float"}, {"name": "squareInputs", "type": "bool"}], "tooltip": "Tank drive method for differential drive platform.\n\n:param leftSpeed: The robot left side's speed along the X axis\n [-1.0..1.0]. Forward is positive.\n:param rightSpeed: The robot right side's speed along the X axis\n [-1.0..1.0]. Forward is positive.\n:param squareInputs: If set, decreases the input sensitivity at low speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "tankDrive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrive"}}}}, "ARG3": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.drive.DifferentialDrive.WheelSpeeds", "args": [{"name": "leftSpeed", "type": "float"}, {"name": "rightSpeed", "type": "float"}, {"name": "squareInputs", "type": "bool"}], "tooltip": "Tank drive inverse kinematics for differential drive platform.\n\n:param leftSpeed: The robot left side's speed along the X axis\n [-1.0..1.0]. Forward is positive.\n:param rightSpeed: The robot right side's speed along the X axis\n [-1.0..1.0]. Forward is positive.\n:param squareInputs: If set, decreases the input sensitivity at low speeds.\n\n:returns: Wheel speeds [-1.0..1.0].", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.DifferentialDrive", "FUNC": "tankDriveIK"}, "inputs": {"ARG2": {"shadow": {"type": "logic_boolean", "fields": {"BOOL": "TRUE"}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.drive.MecanumDrive.WheelSpeeds.ts b/src/blocks/generated/class_wpilib.drive.MecanumDrive.WheelSpeeds.ts
index 4d20cba9..4b4a70c3 100644
--- a/src/blocks/generated/class_wpilib.drive.MecanumDrive.WheelSpeeds.ts
+++ b/src/blocks/generated/class_wpilib.drive.MecanumDrive.WheelSpeeds.ts
@@ -23,7 +23,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.drive.MecanumDrive.WheelSpeeds", "varType": "float", "importModule": "", "selfLabel": "wheelSpeeds", "selfType": "wpilib.drive.MecanumDrive.WheelSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive.WheelSpeeds", "VAR": "rearLeft"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWheelSpeeds"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.drive.MecanumDrive.WheelSpeeds", "varType": "float", "importModule": "", "selfLabel": "wheelSpeeds", "selfType": "wpilib.drive.MecanumDrive.WheelSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive.WheelSpeeds", "VAR": "rearRight"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWheelSpeeds"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpilib.drive.MecanumDrive.WheelSpeeds", "varType": "float", "importModule": "", "selfLabel": "wheelSpeeds", "selfType": "wpilib.drive.MecanumDrive.WheelSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive.WheelSpeeds", "VAR": "rearRight"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWheelSpeeds"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive._drive.MecanumDrive.WheelSpeeds", "args": [], "tooltip": "", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive.WheelSpeeds"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive.MecanumDrive.WheelSpeeds", "args": [], "tooltip": "", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive.WheelSpeeds"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.drive.MecanumDrive.ts b/src/blocks/generated/class_wpilib.drive.MecanumDrive.ts
index f81f4256..ca4b8a65 100644
--- a/src/blocks/generated/class_wpilib.drive.MecanumDrive.ts
+++ b/src/blocks/generated/class_wpilib.drive.MecanumDrive.ts
@@ -11,25 +11,25 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 19 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrive"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive._drive.MecanumDrive", "args": [{"name": "frontLeftMotor", "type": "wpilib.interfaces._interfaces.MotorController"}, {"name": "rearLeftMotor", "type": "wpilib.interfaces._interfaces.MotorController"}, {"name": "frontRightMotor", "type": "wpilib.interfaces._interfaces.MotorController"}, {"name": "rearRightMotor", "type": "wpilib.interfaces._interfaces.MotorController"}], "tooltip": "Construct a MecanumDrive.\n\nIf a motor needs to be inverted, do so before passing it in.\n\n:param frontLeftMotor: Front-left motor.\n:param rearLeftMotor: Rear-left motor.\n:param frontRightMotor: Front-right motor.\n:param rearRightMotor: Rear-right motor.", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrive"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive._drive.MecanumDrive", "args": [{"name": "frontLeftMotor", "type": "Callable[[float], None]"}, {"name": "rearLeftMotor", "type": "Callable[[float], None]"}, {"name": "frontRightMotor", "type": "Callable[[float], None]"}, {"name": "rearRightMotor", "type": "Callable[[float], None]"}], "tooltip": "Construct a MecanumDrive.\n\nIf a motor needs to be inverted, do so before passing it in.\n\n:param frontLeftMotor: Front-left motor setter.\n:param rearLeftMotor: Rear-left motor setter.\n:param frontRightMotor: Front-right motor setter.\n:param rearRightMotor: Rear-right motor setter.", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrive"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive.MecanumDrive", "args": [{"name": "frontLeftMotor", "type": "wpilib.interfaces.MotorController"}, {"name": "rearLeftMotor", "type": "wpilib.interfaces.MotorController"}, {"name": "frontRightMotor", "type": "wpilib.interfaces.MotorController"}, {"name": "rearRightMotor", "type": "wpilib.interfaces.MotorController"}], "tooltip": "Construct a MecanumDrive.\n\nIf a motor needs to be inverted, do so before passing it in.\n\n:param frontLeftMotor: Front-left motor.\n:param rearLeftMotor: Rear-left motor.\n:param frontRightMotor: Front-right motor.\n:param rearRightMotor: Rear-right motor.", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrive"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive.MecanumDrive", "args": [{"name": "frontLeftMotor", "type": "Callable[[float], None]"}, {"name": "rearLeftMotor", "type": "Callable[[float], None]"}, {"name": "frontRightMotor", "type": "Callable[[float], None]"}, {"name": "rearRightMotor", "type": "Callable[[float], None]"}], "tooltip": "Construct a MecanumDrive.\n\nIf a motor needs to be inverted, do so before passing it in.\n\n:param frontLeftMotor: Front-left motor setter.\n:param rearLeftMotor: Rear-left motor setter.\n:param frontRightMotor: Front-right motor setter.\n:param rearRightMotor: Rear-right motor setter.", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrive", "type": "wpilib.drive._drive.MecanumDrive"}, {"name": "xSpeed", "type": "float"}, {"name": "ySpeed", "type": "float"}, {"name": "zRotation", "type": "float"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Drive method for Mecanum platform.\n\nAngles are measured counterclockwise from the positive X axis. The robot's\nspeed is independent from its angle or rotation rate.\n\n:param xSpeed: The robot's speed along the X axis [-1.0..1.0]. Forward is\n positive.\n:param ySpeed: The robot's speed along the Y axis [-1.0..1.0]. Left is\n positive.\n:param zRotation: The robot's rotation rate around the Z axis [-1.0..1.0].\n Counterclockwise is positive.\n:param gyroAngle: The gyro heading around the Z axis. Use this to implement\n field-oriented controls.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "driveCartesian"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrive"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.drive._drive.MecanumDrive.WheelSpeeds", "args": [{"name": "xSpeed", "type": "float"}, {"name": "ySpeed", "type": "float"}, {"name": "zRotation", "type": "float"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Cartesian inverse kinematics for Mecanum platform.\n\nAngles are measured counterclockwise from the positive X axis. The robot's\nspeed is independent from its angle or rotation rate.\n\n:param xSpeed: The robot's speed along the X axis [-1.0..1.0]. Forward is\n positive.\n:param ySpeed: The robot's speed along the Y axis [-1.0..1.0]. Left is\n positive.\n:param zRotation: The robot's rotation rate around the Z axis [-1.0..1.0].\n Counterclockwise is positive.\n:param gyroAngle: The gyro heading around the Z axis. Use this to implement\n field-oriented controls.\n\n:returns: Wheel speeds [-1.0..1.0].", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "driveCartesianIK"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrive", "type": "wpilib.drive._drive.MecanumDrive"}, {"name": "magnitude", "type": "float"}, {"name": "angle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "zRotation", "type": "float"}], "tooltip": "Drive method for Mecanum platform.\n\nAngles are measured counterclockwise from the positive X axis. The robot's\nspeed is independent from its angle or rotation rate.\n\n:param magnitude: The robot's speed at a given angle [-1.0..1.0]. Forward is\n positive.\n:param angle: The angle around the Z axis at which the robot drives.\n:param zRotation: The robot's rotation rate around the Z axis [-1.0..1.0].\n Counterclockwise is positive.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "drivePolar"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrive"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive._drive.RobotDriveBase"}], "tooltip": "Feed the motor safety object. Resets the timer that will stop the motors if\nit completes.\n\n@see MotorSafetyHelper::Feed()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "feedWatchdog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "mecanumDrive", "type": "wpilib.drive._drive.MecanumDrive"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrive"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrive", "type": "wpilib.drive._drive.MecanumDrive"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrive"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive._drive.RobotDriveBase"}, {"name": "deadband", "type": "float"}], "tooltip": "Sets the deadband applied to the drive inputs (e.g., joystick values).\n\nThe default value is 0.02. Inputs smaller than the deadband are set to 0.0\nwhile inputs larger than the deadband are scaled from 0.0 to 1.0. See\nfrc::ApplyDeadband().\n\n:param deadband: The deadband to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "setDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive._drive.RobotDriveBase"}, {"name": "maxOutput", "type": "float"}], "tooltip": "Configure the scaling factor for using RobotDrive with motor controllers in\na mode other than PercentVbus or to limit the maximum output.\n\n:param maxOutput: Multiplied with the output percentage computed by the\n drive functions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "setMaxOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrive", "type": "wpilib.drive._drive.MecanumDrive"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrive"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrive", "type": "wpilib.drive.MecanumDrive"}, {"name": "xSpeed", "type": "float"}, {"name": "ySpeed", "type": "float"}, {"name": "zRotation", "type": "float"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Drive method for Mecanum platform.\n\nAngles are measured counterclockwise from the positive X axis. The robot's\nspeed is independent from its angle or rotation rate.\n\n:param xSpeed: The robot's speed along the X axis [-1.0..1.0]. Forward is\n positive.\n:param ySpeed: The robot's speed along the Y axis [-1.0..1.0]. Left is\n positive.\n:param zRotation: The robot's rotation rate around the Z axis [-1.0..1.0].\n Counterclockwise is positive.\n:param gyroAngle: The gyro heading around the Z axis. Use this to implement\n field-oriented controls.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "driveCartesian"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrive"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.drive.MecanumDrive.WheelSpeeds", "args": [{"name": "xSpeed", "type": "float"}, {"name": "ySpeed", "type": "float"}, {"name": "zRotation", "type": "float"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Cartesian inverse kinematics for Mecanum platform.\n\nAngles are measured counterclockwise from the positive X axis. The robot's\nspeed is independent from its angle or rotation rate.\n\n:param xSpeed: The robot's speed along the X axis [-1.0..1.0]. Forward is\n positive.\n:param ySpeed: The robot's speed along the Y axis [-1.0..1.0]. Left is\n positive.\n:param zRotation: The robot's rotation rate around the Z axis [-1.0..1.0].\n Counterclockwise is positive.\n:param gyroAngle: The gyro heading around the Z axis. Use this to implement\n field-oriented controls.\n\n:returns: Wheel speeds [-1.0..1.0].", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "driveCartesianIK"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrive", "type": "wpilib.drive.MecanumDrive"}, {"name": "magnitude", "type": "float"}, {"name": "angle", "type": "wpimath.geometry.Rotation2d"}, {"name": "zRotation", "type": "float"}], "tooltip": "Drive method for Mecanum platform.\n\nAngles are measured counterclockwise from the positive X axis. The robot's\nspeed is independent from its angle or rotation rate.\n\n:param magnitude: The robot's speed at a given angle [-1.0..1.0]. Forward is\n positive.\n:param angle: The angle around the Z axis at which the robot drives.\n:param zRotation: The robot's rotation rate around the Z axis [-1.0..1.0].\n Counterclockwise is positive.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "drivePolar"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrive"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive.RobotDriveBase"}], "tooltip": "Feed the motor safety object. Resets the timer that will stop the motors if\nit completes.\n\n@see MotorSafetyHelper::Feed()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "feedWatchdog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "mecanumDrive", "type": "wpilib.drive.MecanumDrive"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrive"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrive", "type": "wpilib.drive.MecanumDrive"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrive"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive.RobotDriveBase"}, {"name": "deadband", "type": "float"}], "tooltip": "Sets the deadband applied to the drive inputs (e.g., joystick values).\n\nThe default value is 0.02. Inputs smaller than the deadband are set to 0.0\nwhile inputs larger than the deadband are scaled from 0.0 to 1.0. See\nfrc::ApplyDeadband().\n\n:param deadband: The deadband to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "setDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive.RobotDriveBase"}, {"name": "maxOutput", "type": "float"}], "tooltip": "Configure the scaling factor for using RobotDrive with motor controllers in\na mode other than PercentVbus or to limit the maximum output.\n\n:param maxOutput: Multiplied with the output percentage computed by the\n drive functions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "setMaxOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrive", "type": "wpilib.drive.MecanumDrive"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.MecanumDrive", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrive"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.drive.RobotDriveBase.ts b/src/blocks/generated/class_wpilib.drive.RobotDriveBase.ts
index 33c5d0e3..5f497a76 100644
--- a/src/blocks/generated/class_wpilib.drive.RobotDriveBase.ts
+++ b/src/blocks/generated/class_wpilib.drive.RobotDriveBase.ts
@@ -13,20 +13,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 21 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRobotDriveBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive._drive.RobotDriveBase", "args": [], "tooltip": "", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRobotDriveBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.drive.RobotDriveBase", "args": [], "tooltip": "", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Check if this motor has exceeded its timeout.\n\nThis method is called periodically to determine if this motor has exceeded\nits timeout value. If it has, the stop method is called, and the motor is\nshut down until its value is updated again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "check"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Check the motors to see if any have timed out.\n\nThis static method is called periodically to poll all the motors and stop\nany that have timed out.", "importModule": "wpilib.drive"}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "checkMotors"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive._drive.RobotDriveBase"}], "tooltip": "Feed the motor safety object. Resets the timer that will stop the motors if\nit completes.\n\n@see MotorSafetyHelper::Feed()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "feedWatchdog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "robotDriveBase", "type": "wpilib.drive._drive.RobotDriveBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive._drive.RobotDriveBase"}, {"name": "deadband", "type": "float"}], "tooltip": "Sets the deadband applied to the drive inputs (e.g., joystick values).\n\nThe default value is 0.02. Inputs smaller than the deadband are set to 0.0\nwhile inputs larger than the deadband are scaled from 0.0 to 1.0. See\nfrc::ApplyDeadband().\n\n:param deadband: The deadband to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "setDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive._drive.RobotDriveBase"}, {"name": "maxOutput", "type": "float"}], "tooltip": "Configure the scaling factor for using RobotDrive with motor controllers in\na mode other than PercentVbus or to limit the maximum output.\n\n:param maxOutput: Multiplied with the output percentage computed by the\n drive functions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "setMaxOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib._wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive._drive.RobotDriveBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Feed the motor safety object.\n\nResets the timer on this object that is used to do the timeouts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "feed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive.RobotDriveBase"}], "tooltip": "Feed the motor safety object. Resets the timer that will stop the motors if\nit completes.\n\n@see MotorSafetyHelper::Feed()", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "feedWatchdog"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "robotDriveBase", "type": "wpilib.drive.RobotDriveBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "getDescription"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Retrieve the timeout value for the corresponding motor safety object.\n\n:returns: the timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "getExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Determine if the motor is still operating or has timed out.\n\n:returns: true if the motor is still operating normally and hasn't timed out.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isAlive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}], "tooltip": "Return the state of the motor safety enabled flag.\n\nReturn if the motor safety is currently enabled for this device.\n\n:returns: True if motor safety is enforced for this device.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "isSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive.RobotDriveBase"}, {"name": "deadband", "type": "float"}], "tooltip": "Sets the deadband applied to the drive inputs (e.g., joystick values).\n\nThe default value is 0.02. Inputs smaller than the deadband are set to 0.0\nwhile inputs larger than the deadband are scaled from 0.0 to 1.0. See\nfrc::ApplyDeadband().\n\n:param deadband: The deadband to set.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "setDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "expirationTime", "type": "wpimath.units.seconds"}], "tooltip": "Set the expiration time for the corresponding motor safety object.\n\n:param expirationTime: The timeout value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setExpiration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive.RobotDriveBase"}, {"name": "maxOutput", "type": "float"}], "tooltip": "Configure the scaling factor for using RobotDrive with motor controllers in\na mode other than PercentVbus or to limit the maximum output.\n\n:param maxOutput: Multiplied with the output percentage computed by the\n drive functions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "setMaxOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorSafety", "type": "wpilib.MotorSafety"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enable/disable motor safety for this device.\n\nTurn on and off the motor safety option for this PWM object.\n\n:param enabled: True if motor safety is enforced for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.MotorSafety", "FUNC": "setSafetyEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorSafety"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "robotDriveBase", "type": "wpilib.drive.RobotDriveBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.drive.RobotDriveBase", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRobotDriveBase"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.drive.RobotDriveBase.MotorType", "importModule": "wpilib.drive"}, "fields": {"ENUM_TYPE": "wpilib.drive.RobotDriveBase.MotorType", "ENUM_VALUE": "kBack"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.drive.RobotDriveBase.MotorType", "importModule": "wpilib.drive"}, "fields": {"ENUM_TYPE": "wpilib.drive.RobotDriveBase.MotorType", "ENUM_VALUE": "kFrontLeft"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.drive.RobotDriveBase.MotorType", "importModule": "wpilib.drive"}, "fields": {"ENUM_TYPE": "wpilib.drive.RobotDriveBase.MotorType", "ENUM_VALUE": "kFrontRight"}},
diff --git a/src/blocks/generated/class_wpilib.event.BooleanEvent.ts b/src/blocks/generated/class_wpilib.event.BooleanEvent.ts
index 2b6ca208..68da3921 100644
--- a/src/blocks/generated/class_wpilib.event.BooleanEvent.ts
+++ b/src/blocks/generated/class_wpilib.event.BooleanEvent.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "loop", "type": "wpilib.event._event.EventLoop"}, {"name": "signal", "type": "Callable[[], bool]"}], "tooltip": "Creates a new event that is active when the condition is true.\n\n:param loop: the loop that polls this event\n:param signal: the digital signal represented by this object.", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "object", "args": [{"name": "booleanEvent", "type": "wpilib.event._event.BooleanEvent"}, {"name": "ctor", "type": "Callable"}], "tooltip": "A method to \"downcast\" a BooleanEvent instance to a subclass (for example,\nto a command-based version of this class).\n\n:param ctor: a method reference to the constructor of the subclass that\n accepts the loop as the first parameter and the condition/signal as the\n second.\n\n:returns: an instance of the subclass.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "castTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "booleanEvent", "type": "wpilib.event._event.BooleanEvent"}, {"name": "debounceTime", "type": "wpimath.units.seconds"}, {"name": "type", "type": "wpimath.filter._filter.Debouncer.DebounceType"}], "tooltip": "Creates a new debounced event from this event - it will become active when\nthis event has been active for longer than the specified period.\n\n:param debounceTime: The debounce period.\n:param type: The debounce type.\n\n:returns: The debounced event.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "debounce"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDebounceType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "booleanEvent", "type": "wpilib.event._event.BooleanEvent"}], "tooltip": "Creates a new event that triggers when this one changes from true to false.\n\n:returns: the event.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "falling"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "booleanEvent", "type": "wpilib.event._event.BooleanEvent"}], "tooltip": "Returns the state of this signal (high or low) as of the last loop poll.\n\n:returns: true for the high state, false for the low state. If the event was\n never polled, it returns the state at event construction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "getAsBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "booleanEvent", "type": "wpilib.event._event.BooleanEvent"}, {"name": "action", "type": "Callable[[], None]"}], "tooltip": "Bind an action to this event.\n\n:param action: the action to run if this event is active.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "ifHigh"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "booleanEvent", "type": "wpilib.event._event.BooleanEvent"}], "tooltip": "Creates a new event that triggers when this one changes from false to true.\n\n:returns: the new event.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "rising"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "loop", "type": "wpilib.event.EventLoop"}, {"name": "signal", "type": "Callable[[], bool]"}], "tooltip": "Creates a new event that is active when the condition is true.\n\n:param loop: the loop that polls this event\n:param signal: the digital signal represented by this object.", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "object", "args": [{"name": "booleanEvent", "type": "wpilib.event.BooleanEvent"}, {"name": "ctor", "type": "Callable"}], "tooltip": "A method to \"downcast\" a BooleanEvent instance to a subclass (for example,\nto a command-based version of this class).\n\n:param ctor: a method reference to the constructor of the subclass that\n accepts the loop as the first parameter and the condition/signal as the\n second.\n\n:returns: an instance of the subclass.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "castTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "booleanEvent", "type": "wpilib.event.BooleanEvent"}, {"name": "debounceTime", "type": "wpimath.units.seconds"}, {"name": "type", "type": "wpimath.filter.Debouncer.DebounceType"}], "tooltip": "Creates a new debounced event from this event - it will become active when\nthis event has been active for longer than the specified period.\n\n:param debounceTime: The debounce period.\n:param type: The debounce type.\n\n:returns: The debounced event.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "debounce"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDebounceType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "booleanEvent", "type": "wpilib.event.BooleanEvent"}], "tooltip": "Creates a new event that triggers when this one changes from true to false.\n\n:returns: the event.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "falling"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "booleanEvent", "type": "wpilib.event.BooleanEvent"}], "tooltip": "Returns the state of this signal (high or low) as of the last loop poll.\n\n:returns: true for the high state, false for the low state. If the event was\n never polled, it returns the state at event construction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "getAsBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "booleanEvent", "type": "wpilib.event.BooleanEvent"}, {"name": "action", "type": "Callable[[], None]"}], "tooltip": "Bind an action to this event.\n\n:param action: the action to run if this event is active.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "ifHigh"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "booleanEvent", "type": "wpilib.event.BooleanEvent"}], "tooltip": "Creates a new event that triggers when this one changes from false to true.\n\n:returns: the new event.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "rising"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.event.EventLoop.ts b/src/blocks/generated/class_wpilib.event.EventLoop.ts
index 88436288..55566225 100644
--- a/src/blocks/generated/class_wpilib.event.EventLoop.ts
+++ b/src/blocks/generated/class_wpilib.event.EventLoop.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEventLoop"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event._event.EventLoop", "args": [], "tooltip": "", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.EventLoop"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "eventLoop", "type": "wpilib.event._event.EventLoop"}, {"name": "action", "type": "Callable[[], None]"}], "tooltip": "Bind a new action to run when the loop is polled.\n\n:param action: the action to run.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.EventLoop", "FUNC": "bind"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "eventLoop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Clear all bindings.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.EventLoop", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "eventLoop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Poll all bindings.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.EventLoop", "FUNC": "poll"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEventLoop"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event.EventLoop", "args": [], "tooltip": "", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.EventLoop"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "eventLoop", "type": "wpilib.event.EventLoop"}, {"name": "action", "type": "Callable[[], None]"}], "tooltip": "Bind a new action to run when the loop is polled.\n\n:param action: the action to run.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.EventLoop", "FUNC": "bind"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "eventLoop", "type": "wpilib.event.EventLoop"}], "tooltip": "Clear all bindings.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.EventLoop", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "eventLoop", "type": "wpilib.event.EventLoop"}], "tooltip": "Poll all bindings.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.EventLoop", "FUNC": "poll"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.event.NetworkBooleanEvent.ts b/src/blocks/generated/class_wpilib.event.NetworkBooleanEvent.ts
index 1eb44e7d..eeefa7df 100644
--- a/src/blocks/generated/class_wpilib.event.NetworkBooleanEvent.ts
+++ b/src/blocks/generated/class_wpilib.event.NetworkBooleanEvent.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event._event.NetworkBooleanEvent", "args": [{"name": "loop", "type": "wpilib.event._event.EventLoop"}, {"name": "topic", "type": "ntcore._ntcore.BooleanTopic"}], "tooltip": "Creates a new event with the given boolean topic determining whether it is\nactive.\n\n:param loop: the loop that polls this event\n:param topic: The boolean topic that contains the value", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.NetworkBooleanEvent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanTopic"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event._event.NetworkBooleanEvent", "args": [{"name": "loop", "type": "wpilib.event._event.EventLoop"}, {"name": "sub", "type": "ntcore._ntcore.BooleanSubscriber"}], "tooltip": "Creates a new event with the given boolean subscriber determining whether\nit is active.\n\n:param loop: the loop that polls this event\n:param sub: The boolean subscriber that provides the value", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.NetworkBooleanEvent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanSubscriber"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event._event.NetworkBooleanEvent", "args": [{"name": "loop", "type": "wpilib.event._event.EventLoop"}, {"name": "table", "type": "ntcore._ntcore.NetworkTable"}, {"name": "topicName", "type": "str"}], "tooltip": "Creates a new event with the given boolean topic determining whether it is\nactive.\n\n:param loop: the loop that polls this event\n:param table: The NetworkTable that contains the topic\n:param topicName: The topic name within the table that contains the value", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.NetworkBooleanEvent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event._event.NetworkBooleanEvent", "args": [{"name": "loop", "type": "wpilib.event._event.EventLoop"}, {"name": "tableName", "type": "str"}, {"name": "topicName", "type": "str"}], "tooltip": "Creates a new event with the given boolean topic determining whether it is\nactive.\n\n:param loop: the loop that polls this event\n:param tableName: The NetworkTable name that contains the topic\n:param topicName: The topic name within the table that contains the value", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.NetworkBooleanEvent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event._event.NetworkBooleanEvent", "args": [{"name": "loop", "type": "wpilib.event._event.EventLoop"}, {"name": "inst", "type": "ntcore._ntcore.NetworkTableInstance"}, {"name": "tableName", "type": "str"}, {"name": "topicName", "type": "str"}], "tooltip": "Creates a new event with the given boolean topic determining whether it is\nactive.\n\n:param loop: the loop that polls this event\n:param inst: The NetworkTable instance to use\n:param tableName: The NetworkTable that contains the topic\n:param topicName: The topic name within the table that contains the value", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.NetworkBooleanEvent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTableInstance"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "object", "args": [{"name": "booleanEvent", "type": "wpilib.event._event.BooleanEvent"}, {"name": "ctor", "type": "Callable"}], "tooltip": "A method to \"downcast\" a BooleanEvent instance to a subclass (for example,\nto a command-based version of this class).\n\n:param ctor: a method reference to the constructor of the subclass that\n accepts the loop as the first parameter and the condition/signal as the\n second.\n\n:returns: an instance of the subclass.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "castTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "booleanEvent", "type": "wpilib.event._event.BooleanEvent"}, {"name": "debounceTime", "type": "wpimath.units.seconds"}, {"name": "type", "type": "wpimath.filter._filter.Debouncer.DebounceType"}], "tooltip": "Creates a new debounced event from this event - it will become active when\nthis event has been active for longer than the specified period.\n\n:param debounceTime: The debounce period.\n:param type: The debounce type.\n\n:returns: The debounced event.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "debounce"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDebounceType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "booleanEvent", "type": "wpilib.event._event.BooleanEvent"}], "tooltip": "Creates a new event that triggers when this one changes from true to false.\n\n:returns: the event.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "falling"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "booleanEvent", "type": "wpilib.event._event.BooleanEvent"}], "tooltip": "Returns the state of this signal (high or low) as of the last loop poll.\n\n:returns: true for the high state, false for the low state. If the event was\n never polled, it returns the state at event construction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "getAsBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "booleanEvent", "type": "wpilib.event._event.BooleanEvent"}, {"name": "action", "type": "Callable[[], None]"}], "tooltip": "Bind an action to this event.\n\n:param action: the action to run if this event is active.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "ifHigh"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "booleanEvent", "type": "wpilib.event._event.BooleanEvent"}], "tooltip": "Creates a new event that triggers when this one changes from false to true.\n\n:returns: the new event.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "rising"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event.NetworkBooleanEvent", "args": [{"name": "loop", "type": "wpilib.event.EventLoop"}, {"name": "topic", "type": "ntcore.BooleanTopic"}], "tooltip": "Creates a new event with the given boolean topic determining whether it is\nactive.\n\n:param loop: the loop that polls this event\n:param topic: The boolean topic that contains the value", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.NetworkBooleanEvent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanTopic"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event.NetworkBooleanEvent", "args": [{"name": "loop", "type": "wpilib.event.EventLoop"}, {"name": "sub", "type": "ntcore.BooleanSubscriber"}], "tooltip": "Creates a new event with the given boolean subscriber determining whether\nit is active.\n\n:param loop: the loop that polls this event\n:param sub: The boolean subscriber that provides the value", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.NetworkBooleanEvent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanSubscriber"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event.NetworkBooleanEvent", "args": [{"name": "loop", "type": "wpilib.event.EventLoop"}, {"name": "table", "type": "ntcore.NetworkTable"}, {"name": "topicName", "type": "str"}], "tooltip": "Creates a new event with the given boolean topic determining whether it is\nactive.\n\n:param loop: the loop that polls this event\n:param table: The NetworkTable that contains the topic\n:param topicName: The topic name within the table that contains the value", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.NetworkBooleanEvent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event.NetworkBooleanEvent", "args": [{"name": "loop", "type": "wpilib.event.EventLoop"}, {"name": "tableName", "type": "str"}, {"name": "topicName", "type": "str"}], "tooltip": "Creates a new event with the given boolean topic determining whether it is\nactive.\n\n:param loop: the loop that polls this event\n:param tableName: The NetworkTable name that contains the topic\n:param topicName: The topic name within the table that contains the value", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.NetworkBooleanEvent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myNetworkBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.event.NetworkBooleanEvent", "args": [{"name": "loop", "type": "wpilib.event.EventLoop"}, {"name": "inst", "type": "ntcore.NetworkTableInstance"}, {"name": "tableName", "type": "str"}, {"name": "topicName", "type": "str"}], "tooltip": "Creates a new event with the given boolean topic determining whether it is\nactive.\n\n:param loop: the loop that polls this event\n:param inst: The NetworkTable instance to use\n:param tableName: The NetworkTable that contains the topic\n:param topicName: The topic name within the table that contains the value", "importModule": "wpilib.event"}, "fields": {"MODULE_OR_CLASS": "wpilib.event.NetworkBooleanEvent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTableInstance"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "object", "args": [{"name": "booleanEvent", "type": "wpilib.event.BooleanEvent"}, {"name": "ctor", "type": "Callable"}], "tooltip": "A method to \"downcast\" a BooleanEvent instance to a subclass (for example,\nto a command-based version of this class).\n\n:param ctor: a method reference to the constructor of the subclass that\n accepts the loop as the first parameter and the condition/signal as the\n second.\n\n:returns: an instance of the subclass.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "castTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "booleanEvent", "type": "wpilib.event.BooleanEvent"}, {"name": "debounceTime", "type": "wpimath.units.seconds"}, {"name": "type", "type": "wpimath.filter.Debouncer.DebounceType"}], "tooltip": "Creates a new debounced event from this event - it will become active when\nthis event has been active for longer than the specified period.\n\n:param debounceTime: The debounce period.\n:param type: The debounce type.\n\n:returns: The debounced event.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "debounce"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDebounceType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "booleanEvent", "type": "wpilib.event.BooleanEvent"}], "tooltip": "Creates a new event that triggers when this one changes from true to false.\n\n:returns: the event.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "falling"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "booleanEvent", "type": "wpilib.event.BooleanEvent"}], "tooltip": "Returns the state of this signal (high or low) as of the last loop poll.\n\n:returns: true for the high state, false for the low state. If the event was\n never polled, it returns the state at event construction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "getAsBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "booleanEvent", "type": "wpilib.event.BooleanEvent"}, {"name": "action", "type": "Callable[[], None]"}], "tooltip": "Bind an action to this event.\n\n:param action: the action to run if this event is active.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "ifHigh"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "booleanEvent", "type": "wpilib.event.BooleanEvent"}], "tooltip": "Creates a new event that triggers when this one changes from false to true.\n\n:returns: the new event.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.event.BooleanEvent", "FUNC": "rising"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBooleanEvent"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.interfaces.CounterBase.ts b/src/blocks/generated/class_wpilib.interfaces.CounterBase.ts
index 316e229b..d7f271ed 100644
--- a/src/blocks/generated/class_wpilib.interfaces.CounterBase.ts
+++ b/src/blocks/generated/class_wpilib.interfaces.CounterBase.ts
@@ -13,13 +13,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 10 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCounterBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.interfaces._interfaces.CounterBase", "args": [], "tooltip": "", "importModule": "wpilib.interfaces"}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "counterBase", "type": "wpilib.interfaces._interfaces.CounterBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "counterBase", "type": "wpilib.interfaces._interfaces.CounterBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase", "FUNC": "getDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "counterBase", "type": "wpilib.interfaces._interfaces.CounterBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "counterBase", "type": "wpilib.interfaces._interfaces.CounterBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase", "FUNC": "getStopped"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counterBase", "type": "wpilib.interfaces._interfaces.CounterBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counterBase", "type": "wpilib.interfaces._interfaces.CounterBase"}, {"name": "maxPeriod", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase", "FUNC": "setMaxPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCounterBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.interfaces.CounterBase", "args": [], "tooltip": "", "importModule": "wpilib.interfaces"}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "counterBase", "type": "wpilib.interfaces.CounterBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "counterBase", "type": "wpilib.interfaces.CounterBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase", "FUNC": "getDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "counterBase", "type": "wpilib.interfaces.CounterBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "counterBase", "type": "wpilib.interfaces.CounterBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase", "FUNC": "getStopped"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counterBase", "type": "wpilib.interfaces.CounterBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "counterBase", "type": "wpilib.interfaces.CounterBase"}, {"name": "maxPeriod", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.CounterBase", "FUNC": "setMaxPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterBase"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.interfaces.CounterBase.EncodingType", "importModule": "wpilib.interfaces"}, "fields": {"ENUM_TYPE": "wpilib.interfaces.CounterBase.EncodingType", "ENUM_VALUE": "k1X"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.interfaces.CounterBase.EncodingType", "importModule": "wpilib.interfaces"}, "fields": {"ENUM_TYPE": "wpilib.interfaces.CounterBase.EncodingType", "ENUM_VALUE": "k2X"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.interfaces.CounterBase.EncodingType", "importModule": "wpilib.interfaces"}, "fields": {"ENUM_TYPE": "wpilib.interfaces.CounterBase.EncodingType", "ENUM_VALUE": "k4X"}},
diff --git a/src/blocks/generated/class_wpilib.interfaces.GenericHID.ts b/src/blocks/generated/class_wpilib.interfaces.GenericHID.ts
index 617fd0a5..9903b824 100644
--- a/src/blocks/generated/class_wpilib.interfaces.GenericHID.ts
+++ b/src/blocks/generated/class_wpilib.interfaces.GenericHID.ts
@@ -14,37 +14,37 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 51 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myGenericHID"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.interfaces._interfaces.GenericHID", "args": [{"name": "port", "type": "int"}], "tooltip": "", "importModule": "wpilib.interfaces"}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "pov", "type": "int"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param pov: index of the POV to read (starting at 0). Defaults to 0.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the center (not pressed) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the center of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 180 degree angle (down)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 180 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDown"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 225 degree angle (down\nleft) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 225 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 135 degree angle (right\ndown) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 135 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 270 degree angle (left)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 270 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 90 degree angle (right)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 90 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 0 degree angle (up) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 0 degree angle of a POV on\n the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 315 degree angle (left\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 315 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 45 degree angle (right\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 45 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is greater\nthan threshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value above which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is greater than\n the provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisGreaterThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is less than\nthreshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value below which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is less than the\n provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisLessThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event._event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}, {"name": "loop", "type": "wpilib.event._event.EventLoop"}], "tooltip": "Constructs an event instance around this button's digital signal.\n\n:param button: the button index\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the button's digital signal attached\n to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of axes for the HID.\n\n:returns: the number of axis for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the axis type of a joystick axis.\n\n:returns: the axis type of a joystick axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of buttons for the HID.\n\n:returns: the number of buttons on the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the name of the HID.\n\n:returns: the name of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "pov", "type": "int"}], "tooltip": "Get the angle in degrees of a POV on the HID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(e.g. right is 90, upper-left is 315).\n\n:param pov: The index of the POV to read (starting at 0)\n\n:returns: the angle of the POV in degrees, or -1 if the POV is not pressed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the number of POVs for the HID.\n\n:returns: the number of POVs for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the port number of the HID.\n\n:returns: The port number of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis.\n\n:param axis: The axis to read, starting at 0.\n\n:returns: The value of the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Get the button value (starting at button 1).\n\nThe buttons are returned in a single 16 bit value with one bit representing\nthe state of each button. The appropriate button is returned as a boolean\nvalue.\n\nThis method returns true if the button is being held down at the time\nthat this method is being called.\n\n:param button: The button number to be read (starting at 1)\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was pressed since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from not pressed to held down\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you press the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was released since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from held down to not pressed\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you release the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHIDType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.interfaces._interfaces.GenericHID.HIDType", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get the type of the HID.\n\n:returns: the type of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Get if the HID is connected.\n\n:returns: true if the HID is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "outputNumber", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set a single HID output value for the HID.\n\n:param outputNumber: The index of the output to set (1-32)\n:param value: The value to set the output to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "value", "type": "int"}], "tooltip": "Set all output values for the HID.\n\n:param value: The 32 bit output value (1 bit for each output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces._interfaces.GenericHID"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.RumbleType"}, {"name": "value", "type": "float"}], "tooltip": "Set the rumble output for the HID.\n\nThe DS currently supports 2 rumble values, left rumble and right rumble.\n\n:param type: Which rumble value to set\n:param value: The normalized value (0 to 1) to set the rumble to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myGenericHID"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.interfaces.GenericHID", "args": [{"name": "port", "type": "int"}], "tooltip": "", "importModule": "wpilib.interfaces"}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "pov", "type": "int"}, {"name": "angle", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around this angle of a POV on the\nHID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(eg right is 90, upper-left is 315).\n\n:param loop: the event loop instance to attach the event to.\n:param pov: index of the POV to read (starting at 0). Defaults to 0.\n:param angle: POV angle in degrees, or -1 for the center / not pressed.\n\n:returns: a BooleanEvent instance based around this angle of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the center (not pressed) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the center of a POV on the\n HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 180 degree angle (down)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 180 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDown"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 225 degree angle (down\nleft) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 225 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 135 degree angle (right\ndown) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 135 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVDownRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 270 degree angle (left)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 270 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 90 degree angle (right)\nof the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 90 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 0 degree angle (up) of\nthe default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 0 degree angle of a POV on\n the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 315 degree angle (left\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 315 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs a BooleanEvent instance based around the 45 degree angle (right\nup) of the default (index 0) POV on the HID.\n\n:returns: a BooleanEvent instance based around the 45 degree angle of a POV\n on the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "POVUpRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is greater\nthan threshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value above which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is greater than\n the provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisGreaterThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}, {"name": "threshold", "type": "float"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance that is true when the axis value is less than\nthreshold\n\n:param axis: The axis to read, starting at 0.\n:param threshold: The value below which this trigger should return true.\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance that is true when the axis value is less than the\n provided threshold.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "axisLessThan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBooleanEvent"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.event.BooleanEvent", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}, {"name": "loop", "type": "wpilib.event.EventLoop"}], "tooltip": "Constructs an event instance around this button's digital signal.\n\n:param button: the button index\n:param loop: the event loop instance to attach the event to.\n\n:returns: an event instance representing the button's digital signal attached\n to the given loop.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEventLoop"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of axes for the HID.\n\n:returns: the number of axis for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the axis type of a joystick axis.\n\n:returns: the axis type of a joystick axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of buttons for the HID.\n\n:returns: the number of buttons on the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the name of the HID.\n\n:returns: the name of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "pov", "type": "int"}], "tooltip": "Get the angle in degrees of a POV on the HID.\n\nThe POV angles start at 0 in the up direction, and increase clockwise\n(e.g. right is 90, upper-left is 315).\n\n:param pov: The index of the POV to read (starting at 0)\n\n:returns: the angle of the POV in degrees, or -1 if the POV is not pressed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the number of POVs for the HID.\n\n:returns: the number of POVs for the current HID", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the port number of the HID.\n\n:returns: The port number of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "axis", "type": "int"}], "tooltip": "Get the value of the axis.\n\n:param axis: The axis to read, starting at 0.\n\n:returns: The value of the axis.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Get the button value (starting at button 1).\n\nThe buttons are returned in a single 16 bit value with one bit representing\nthe state of each button. The appropriate button is returned as a boolean\nvalue.\n\nThis method returns true if the button is being held down at the time\nthat this method is being called.\n\n:param button: The button number to be read (starting at 1)\n\n:returns: The state of the button.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was pressed since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from not pressed to held down\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you press the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was pressed since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonPressed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "button", "type": "int"}], "tooltip": "Whether the button was released since the last check. %Button indexes begin\nat 1.\n\nThis method returns true if the button went from held down to not pressed\nsince the last time this method was called. This is useful if you only\nwant to call a function once when you release the button.\n\n:param button: The button index, beginning at 1.\n\n:returns: Whether the button was released since the last check.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getRawButtonReleased"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHIDType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.interfaces.GenericHID.HIDType", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get the type of the HID.\n\n:returns: the type of the HID.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Get if the HID is connected.\n\n:returns: true if the HID is connected", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "outputNumber", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set a single HID output value for the HID.\n\n:param outputNumber: The index of the output to set (1-32)\n:param value: The value to set the output to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "value", "type": "int"}], "tooltip": "Set all output values for the HID.\n\n:param value: The 32 bit output value (1 bit for each output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHID", "type": "wpilib.interfaces.GenericHID"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.RumbleType"}, {"name": "value", "type": "float"}], "tooltip": "Set the rumble output for the HID.\n\nThe DS currently supports 2 rumble values, left rumble and right rumble.\n\n:param type: Which rumble value to set\n:param value: The normalized value (0 to 1) to set the rumble to", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.GenericHID", "FUNC": "setRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.interfaces.GenericHID.HIDType", "importModule": "wpilib.interfaces"}, "fields": {"ENUM_TYPE": "wpilib.interfaces.GenericHID.HIDType", "ENUM_VALUE": "kHID1stPerson"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.interfaces.GenericHID.HIDType", "importModule": "wpilib.interfaces"}, "fields": {"ENUM_TYPE": "wpilib.interfaces.GenericHID.HIDType", "ENUM_VALUE": "kHIDDriving"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.interfaces.GenericHID.HIDType", "importModule": "wpilib.interfaces"}, "fields": {"ENUM_TYPE": "wpilib.interfaces.GenericHID.HIDType", "ENUM_VALUE": "kHIDFlight"}},
diff --git a/src/blocks/generated/class_wpilib.interfaces.MotorController.ts b/src/blocks/generated/class_wpilib.interfaces.MotorController.ts
index 0d5e476c..ab1fc11f 100644
--- a/src/blocks/generated/class_wpilib.interfaces.MotorController.ts
+++ b/src/blocks/generated/class_wpilib.interfaces.MotorController.ts
@@ -11,14 +11,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 8 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.interfaces._interfaces.MotorController", "args": [], "tooltip": "", "importModule": "wpilib.interfaces"}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorController", "type": "wpilib.interfaces._interfaces.MotorController"}], "tooltip": "Common interface for disabling a motor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "motorController", "type": "wpilib.interfaces._interfaces.MotorController"}], "tooltip": "Common interface for getting the current set speed of a motor controller.\n\n:returns: The current set speed. Value is between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorController", "type": "wpilib.interfaces._interfaces.MotorController"}], "tooltip": "Common interface for returning the inversion state of a motor controller.\n\n:returns: isInverted The state of inversion, true is inverted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorController", "type": "wpilib.interfaces._interfaces.MotorController"}, {"name": "speed", "type": "float"}], "tooltip": "Common interface for setting the speed of a motor controller.\n\n:param speed: The speed to set. Value should be between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorController", "type": "wpilib.interfaces._interfaces.MotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "Common interface for inverting direction of a motor controller.\n\n:param isInverted: The state of inversion, true is inverted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorController", "type": "wpilib.interfaces._interfaces.MotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the MotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorController", "type": "wpilib.interfaces._interfaces.MotorController"}], "tooltip": "Common interface to stop the motor until Set is called again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.interfaces.MotorController", "args": [], "tooltip": "", "importModule": "wpilib.interfaces"}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorController", "type": "wpilib.interfaces.MotorController"}], "tooltip": "Common interface for disabling a motor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "disable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "motorController", "type": "wpilib.interfaces.MotorController"}], "tooltip": "Common interface for getting the current set speed of a motor controller.\n\n:returns: The current set speed. Value is between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "motorController", "type": "wpilib.interfaces.MotorController"}], "tooltip": "Common interface for returning the inversion state of a motor controller.\n\n:returns: isInverted The state of inversion, true is inverted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "getInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorController", "type": "wpilib.interfaces.MotorController"}, {"name": "speed", "type": "float"}], "tooltip": "Common interface for setting the speed of a motor controller.\n\n:param speed: The speed to set. Value should be between -1.0 and 1.0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorController", "type": "wpilib.interfaces.MotorController"}, {"name": "isInverted", "type": "bool"}], "tooltip": "Common interface for inverting direction of a motor controller.\n\n:param isInverted: The state of inversion, true is inverted.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "setInverted"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorController", "type": "wpilib.interfaces.MotorController"}, {"name": "output", "type": "wpimath.units.volts"}], "tooltip": "Sets the voltage output of the MotorController. Compensates for\nthe current bus voltage to ensure that the desired voltage is output even\nif the battery voltage is below 12V - highly useful when the voltage\noutputs are \"meaningful\" (e.g. they come from a feedforward calculation).\n\nNOTE: This function *must* be called regularly in order for voltage\ncompensation to work properly - unlike the ordinary set function, it is not\n\"set it and forget it.\"\n\n:param output: The voltage to output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "motorController", "type": "wpilib.interfaces.MotorController"}], "tooltip": "Common interface to stop the motor until Set is called again.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.interfaces.MotorController", "FUNC": "stopMotor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.ComplexWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.ComplexWidget.ts
index 2535a288..54d23f8a 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.ComplexWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.ComplexWidget.ts
@@ -11,21 +11,21 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 15 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "parent", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "sendable", "type": "wpiutil._wpiutil.Sendable"}], "tooltip": "", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ComplexWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "complexWidget", "type": "wpilib.shuffleboard._shuffleboard.ComplexWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ComplexWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myComplexWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "complexWidget", "type": "wpilib.shuffleboard._shuffleboard.ComplexWidget"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ComplexWidget", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myComplexWidget"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "complexWidget", "type": "wpilib.shuffleboard._shuffleboard.ComplexWidget"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ComplexWidget", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myComplexWidget"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._shuffleboard._ComplexComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._shuffleboard._ComplexComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._shuffleboard._ComplexComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexWidget", "type": "wpilib.shuffleboard._shuffleboard._ComplexWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexWidget", "type": "wpilib.shuffleboard._shuffleboard._ComplexWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexWidget", "type": "wpilib.shuffleboard._shuffleboard._ComplexWidget"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexWidget"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "parent", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "sendable", "type": "wpiutil.Sendable"}], "tooltip": "", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ComplexWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "complexWidget", "type": "wpilib.shuffleboard.ComplexWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ComplexWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myComplexWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "complexWidget", "type": "wpilib.shuffleboard.ComplexWidget"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ComplexWidget", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myComplexWidget"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "complexWidget", "type": "wpilib.shuffleboard.ComplexWidget"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ComplexWidget", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myComplexWidget"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._ComplexComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._ComplexComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._ComplexComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexWidget", "type": "wpilib.shuffleboard._ComplexWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexWidget", "type": "wpilib.shuffleboard._ComplexWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexWidget", "type": "wpilib.shuffleboard._ComplexWidget"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexWidget"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.LayoutType.ts b/src/blocks/generated/class_wpilib.shuffleboard.LayoutType.ts
index 012fda5b..ed30f44f 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.LayoutType.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.LayoutType.ts
@@ -11,8 +11,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 2 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLayoutType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.shuffleboard._shuffleboard.LayoutType", "args": [{"name": "layoutName", "type": "str"}], "tooltip": "", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.LayoutType"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "layoutType", "type": "wpilib.shuffleboard._shuffleboard.LayoutType"}], "tooltip": "Gets the string type of the layout as defined by that layout in\nShuffleboard.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.LayoutType", "FUNC": "getLayoutName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLayoutType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLayoutType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.shuffleboard.LayoutType", "args": [{"name": "layoutName", "type": "str"}], "tooltip": "", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.LayoutType"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "layoutType", "type": "wpilib.shuffleboard.LayoutType"}], "tooltip": "Gets the string type of the layout as defined by that layout in\nShuffleboard.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.LayoutType", "FUNC": "getLayoutName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLayoutType"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.Shuffleboard.ts b/src/blocks/generated/class_wpilib.shuffleboard.Shuffleboard.ts
index cc4915e5..f50e02d9 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.Shuffleboard.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.Shuffleboard.ts
@@ -14,12 +14,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.shuffleboard.Shuffleboard", "varType": "str", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "VAR": "kBaseTableName"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "name", "type": "str"}, {"name": "description", "type": "str"}, {"name": "importance", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardEventImportance"}], "tooltip": "Notifies Shuffleboard of an event. Events can range from as trivial as a\nchange in a command state to as critical as a total power loss or component\nfailure. If Shuffleboard is recording, the event will also be recorded.\n\nIf ``name`` is ``null`` or empty, no event will be sent and an\nerror will be printed to the driver station.\n\n:param name: the name of the event\n:param description: a description of the event\n:param importance: the importance of the event", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "FUNC": "addEventMarker"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardEventImportance"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "name", "type": "str"}, {"name": "importance", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardEventImportance"}], "tooltip": "Notifies Shuffleboard of an event. Events can range from as trivial as a\nchange in a command state to as critical as a total power loss or component\nfailure. If Shuffleboard is recording, the event will also be recorded.\n\nIf ``name`` is ``null`` or empty, no event will be sent and an\nerror will be printed to the driver station.\n\n:param name: the name of the event\n:param importance: the importance of the event", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "FUNC": "addEventMarker"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardEventImportance"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "name", "type": "str"}, {"name": "description", "type": "str"}, {"name": "importance", "type": "wpilib.shuffleboard.ShuffleboardEventImportance"}], "tooltip": "Notifies Shuffleboard of an event. Events can range from as trivial as a\nchange in a command state to as critical as a total power loss or component\nfailure. If Shuffleboard is recording, the event will also be recorded.\n\nIf ``name`` is ``null`` or empty, no event will be sent and an\nerror will be printed to the driver station.\n\n:param name: the name of the event\n:param description: a description of the event\n:param importance: the importance of the event", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "FUNC": "addEventMarker"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardEventImportance"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "name", "type": "str"}, {"name": "importance", "type": "wpilib.shuffleboard.ShuffleboardEventImportance"}], "tooltip": "Notifies Shuffleboard of an event. Events can range from as trivial as a\nchange in a command state to as critical as a total power loss or component\nfailure. If Shuffleboard is recording, the event will also be recorded.\n\nIf ``name`` is ``null`` or empty, no event will be sent and an\nerror will be printed to the driver station.\n\n:param name: the name of the event\n:param importance: the importance of the event", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "FUNC": "addEventMarker"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardEventImportance"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Clears the custom name format for recording files. New recordings will use\nthe default format.\n\n@see SetRecordingFileNameFormat(std::string_view)", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "FUNC": "clearRecordingFileNameFormat"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Disables user control of widgets containing actuators. For safety reasons,\nactuators should only be controlled while in test mode. IterativeRobotBase\nand SampleRobot are both configured to call this method when exiting in\ntest mode; most users should not need to use this method directly.", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "FUNC": "disableActuatorWidgets"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Enables user control of widgets containing actuators: motor controllers,\nrelays, etc. This should only be used when the robot is in test mode.\nIterativeRobotBase and SampleRobot are both configured to call this method\nwhen entering test mode; most users should not need to use this method\ndirectly.", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "FUNC": "enableActuatorWidgets"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardTab"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardTab", "args": [{"name": "title", "type": "str"}], "tooltip": "Gets the Shuffleboard tab with the given title, creating it if it does not\nalready exist.\n\n:param title: the title of the tab\n\n:returns: the tab with the given title", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "FUNC": "getTab"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardTab"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.shuffleboard.ShuffleboardTab", "args": [{"name": "title", "type": "str"}], "tooltip": "Gets the Shuffleboard tab with the given title, creating it if it does not\nalready exist.\n\n:param title: the title of the tab\n\n:returns: the tab with the given title", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "FUNC": "getTab"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "index", "type": "int"}], "tooltip": "Selects the tab in the dashboard with the given index in the range\n[0..n-1], where *n* is the number of tabs in the dashboard at the time\nthis method is called.\n\n:param index: the index of the tab to select", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "FUNC": "selectTab"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "title", "type": "str"}], "tooltip": "Selects the tab in the dashboard with the given title.\n\n:param title: the title of the tab to select", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "FUNC": "selectTab"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "format", "type": "str"}], "tooltip": "Sets the file name format for new recording files to use. If recording is\nin progress when this method is called, it will continue to use the same\nfile. New recordings will use the format.\n\nTo avoid recording files overwriting each other, make sure to use unique\nrecording file names. File name formats accept templates for inserting the\ndate and time when the recording started with the ``${date``} and\n``${time``} templates, respectively. For example, the default format is\n``\"recording-${time``\"} and recording files created with it will have\nnames like ``\"recording-2018.01.15.sbr\"``. Users are\n**strongly** recommended to use the ``${time``} template\nto ensure unique file names.\n
\n\n:param format: the format for the", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.Shuffleboard", "FUNC": "setRecordingFileNameFormat"}},
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardComponentBase.ts b/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardComponentBase.ts
index af579de9..f062d7fe 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardComponentBase.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardComponentBase.ts
@@ -11,14 +11,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 8 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardContainer.ts b/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardContainer.ts
index 677d02ca..ee6e6c10 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardContainer.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardContainer.ts
@@ -11,53 +11,53 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 47 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "wpiutil._wpiutil.Sendable"}], "tooltip": "Adds a widget to this container to display the given sendable.\n\n:param title: the title of the widget\n:param defaultValue: the sendable to display\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "defaultValue", "type": "wpiutil._wpiutil.Sendable"}], "tooltip": "Adds a widget to this container to display the given sendable.\n\n:param defaultValue: the sendable to display\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title, or if the sendable's name has not been\n specified", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "ntcore._ntcore.Value"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::shared_ptr)\n Add(std::string_view title, std::shared_ptr defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, bool)\n Add(std::string_view title, bool defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "int"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, int)\n Add(std::string_view title, int defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::string_view)\n Add(std::string_view title, std::string_view defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[bool]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], bool]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addBooleanArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addDoubleArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addFloat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addFloatArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], int]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addInteger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addIntegerArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addNumber"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addNumberArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "ntcore._ntcore.Value"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::shared_ptr), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(stdd::string_view, std::shared_ptr)\n Add(std::string_view title, std::shared_ptr defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, bool), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, bool)\n Add(std::string_view title, bool defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, double), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, float), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, float)\n Add(std::string_view title, float defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "int"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, int64_t), the value in the widget will be\nsaved on the robot and will be used when the robot program next starts\nrather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std:string_view, int64_t)\n Add(std::string_view title, int64_t defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::string_view), the value in the widget\nwill be saved on the robot and will be used when the robot program next\nstarts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::string_view)\n Add(std::string_view title, std::string_view defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[bool]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in\nthe widget will be saved on the robot and will be used when the robot\nprogram next starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "typeString", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param typeString: the NT type string\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], str]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[str]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addStringArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase]", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}], "tooltip": "Gets the components that are direct children of this container.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getComponents"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "wpilib.shuffleboard._shuffleboard.BuiltInLayouts"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List\" or \"Grid\"\n\n:returns: the layout", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInLayouts"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "wpilib.shuffleboard._shuffleboard.LayoutType"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List\" or \"Grid\"\n\n:returns: the layout", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLayoutType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "str"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called. Note: this method should\nonly be used to use a layout type that is not already built into\nShuffleboard. To use a layout built into Shuffleboard, use\nGetLayout(std::string_view, const LayoutType&) and the layouts in\nBuiltInLayouts.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List Layout\" or \"Grid Layout\"\n\n:returns: the layout\n @see GetLayout(std::string_view, const LayoutType&)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}], "tooltip": "Gets the already-defined layout in this container with the given title.\n\n{@code\nShuffleboard::GetTab(\"Example Tab\")->getLayout(\"My Layout\",\n&BuiltInLayouts.kList);\n\n// Later...\nShuffleboard::GetTab(\"Example Tab\")->GetLayout(\"My Layout\");\n}\n\n:param title: the title of the layout to get\n\n:returns: the layout with the given title\n @throws if no layout has yet been defined with the given title", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "wpiutil.Sendable"}], "tooltip": "Adds a widget to this container to display the given sendable.\n\n:param title: the title of the widget\n:param defaultValue: the sendable to display\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "defaultValue", "type": "wpiutil.Sendable"}], "tooltip": "Adds a widget to this container to display the given sendable.\n\n:param defaultValue: the sendable to display\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title, or if the sendable's name has not been\n specified", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "ntcore.Value"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::shared_ptr)\n Add(std::string_view title, std::shared_ptr defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, bool)\n Add(std::string_view title, bool defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "int"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, int)\n Add(std::string_view title, int defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::string_view)\n Add(std::string_view title, std::string_view defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[bool]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], bool]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addBooleanArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addDoubleArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addFloat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addFloatArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], int]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addInteger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addIntegerArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addNumber"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addNumberArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "ntcore.Value"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::shared_ptr), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(stdd::string_view, std::shared_ptr)\n Add(std::string_view title, std::shared_ptr defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, bool), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, bool)\n Add(std::string_view title, bool defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, double), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, float), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, float)\n Add(std::string_view title, float defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "int"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, int64_t), the value in the widget will be\nsaved on the robot and will be used when the robot program next starts\nrather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std:string_view, int64_t)\n Add(std::string_view title, int64_t defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::string_view), the value in the widget\nwill be saved on the robot and will be used when the robot program next\nstarts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::string_view)\n Add(std::string_view title, std::string_view defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[bool]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in\nthe widget will be saved on the robot and will be used when the robot\nprogram next starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "typeString", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param typeString: the NT type string\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], str]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[str]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addStringArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase]", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}], "tooltip": "Gets the components that are direct children of this container.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getComponents"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "wpilib.shuffleboard.BuiltInLayouts"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List\" or \"Grid\"\n\n:returns: the layout", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInLayouts"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "wpilib.shuffleboard.LayoutType"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List\" or \"Grid\"\n\n:returns: the layout", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLayoutType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "str"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called. Note: this method should\nonly be used to use a layout type that is not already built into\nShuffleboard. To use a layout built into Shuffleboard, use\nGetLayout(std::string_view, const LayoutType&) and the layouts in\nBuiltInLayouts.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List Layout\" or \"Grid Layout\"\n\n:returns: the layout\n @see GetLayout(std::string_view, const LayoutType&)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}], "tooltip": "Gets the already-defined layout in this container with the given title.\n\n{@code\nShuffleboard::GetTab(\"Example Tab\")->getLayout(\"My Layout\",\n&BuiltInLayouts.kList);\n\n// Later...\nShuffleboard::GetTab(\"Example Tab\")->GetLayout(\"My Layout\");\n}\n\n:param title: the title of the layout to get\n\n:returns: the layout with the given title\n @throws if no layout has yet been defined with the given title", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardLayout.ts b/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardLayout.ts
index 251b3c94..de725615 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardLayout.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardLayout.ts
@@ -11,61 +11,61 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 55 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "parent", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "name", "type": "str"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "wpiutil._wpiutil.Sendable"}], "tooltip": "Adds a widget to this container to display the given sendable.\n\n:param title: the title of the widget\n:param defaultValue: the sendable to display\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "defaultValue", "type": "wpiutil._wpiutil.Sendable"}], "tooltip": "Adds a widget to this container to display the given sendable.\n\n:param defaultValue: the sendable to display\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title, or if the sendable's name has not been\n specified", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "ntcore._ntcore.Value"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::shared_ptr)\n Add(std::string_view title, std::shared_ptr defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, bool)\n Add(std::string_view title, bool defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "int"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, int)\n Add(std::string_view title, int defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::string_view)\n Add(std::string_view title, std::string_view defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[bool]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], bool]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addBooleanArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addDoubleArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addFloat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addFloatArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], int]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addInteger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addIntegerArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addNumber"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addNumberArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "ntcore._ntcore.Value"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::shared_ptr), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(stdd::string_view, std::shared_ptr)\n Add(std::string_view title, std::shared_ptr defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, bool), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, bool)\n Add(std::string_view title, bool defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, double), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, float), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, float)\n Add(std::string_view title, float defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "int"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, int64_t), the value in the widget will be\nsaved on the robot and will be used when the robot program next starts\nrather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std:string_view, int64_t)\n Add(std::string_view title, int64_t defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::string_view), the value in the widget\nwill be saved on the robot and will be used when the robot program next\nstarts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::string_view)\n Add(std::string_view title, std::string_view defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[bool]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in\nthe widget will be saved on the robot and will be used when the robot\nprogram next starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "typeString", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param typeString: the NT type string\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], str]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[str]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addStringArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardLayout", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardLayout", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardLayout"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase]", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}], "tooltip": "Gets the components that are direct children of this container.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getComponents"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "wpilib.shuffleboard._shuffleboard.BuiltInLayouts"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List\" or \"Grid\"\n\n:returns: the layout", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInLayouts"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "wpilib.shuffleboard._shuffleboard.LayoutType"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List\" or \"Grid\"\n\n:returns: the layout", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLayoutType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "str"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called. Note: this method should\nonly be used to use a layout type that is not already built into\nShuffleboard. To use a layout built into Shuffleboard, use\nGetLayout(std::string_view, const LayoutType&) and the layouts in\nBuiltInLayouts.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List Layout\" or \"Grid Layout\"\n\n:returns: the layout\n @see GetLayout(std::string_view, const LayoutType&)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}], "tooltip": "Gets the already-defined layout in this container with the given title.\n\n{@code\nShuffleboard::GetTab(\"Example Tab\")->getLayout(\"My Layout\",\n&BuiltInLayouts.kList);\n\n// Later...\nShuffleboard::GetTab(\"Example Tab\")->GetLayout(\"My Layout\");\n}\n\n:param title: the title of the layout to get\n\n:returns: the layout with the given title\n @throws if no layout has yet been defined with the given title", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "_LayoutComponent", "type": "wpilib.shuffleboard._shuffleboard._LayoutComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._LayoutComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_LayoutComponent"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "_LayoutComponent", "type": "wpilib.shuffleboard._shuffleboard._LayoutComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._LayoutComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_LayoutComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "_LayoutComponent", "type": "wpilib.shuffleboard._shuffleboard._LayoutComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._LayoutComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_LayoutComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "parent", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "name", "type": "str"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "wpiutil.Sendable"}], "tooltip": "Adds a widget to this container to display the given sendable.\n\n:param title: the title of the widget\n:param defaultValue: the sendable to display\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "defaultValue", "type": "wpiutil.Sendable"}], "tooltip": "Adds a widget to this container to display the given sendable.\n\n:param defaultValue: the sendable to display\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title, or if the sendable's name has not been\n specified", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "ntcore.Value"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::shared_ptr)\n Add(std::string_view title, std::shared_ptr defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, bool)\n Add(std::string_view title, bool defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "int"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, int)\n Add(std::string_view title, int defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::string_view)\n Add(std::string_view title, std::string_view defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[bool]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], bool]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addBooleanArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addDoubleArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addFloat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addFloatArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], int]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addInteger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addIntegerArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addNumber"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addNumberArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "ntcore.Value"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::shared_ptr), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(stdd::string_view, std::shared_ptr)\n Add(std::string_view title, std::shared_ptr defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, bool), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, bool)\n Add(std::string_view title, bool defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, double), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, float), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, float)\n Add(std::string_view title, float defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "int"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, int64_t), the value in the widget will be\nsaved on the robot and will be used when the robot program next starts\nrather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std:string_view, int64_t)\n Add(std::string_view title, int64_t defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::string_view), the value in the widget\nwill be saved on the robot and will be used when the robot program next\nstarts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::string_view)\n Add(std::string_view title, std::string_view defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[bool]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in\nthe widget will be saved on the robot and will be used when the robot\nprogram next starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "typeString", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param typeString: the NT type string\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], str]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[str]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addStringArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardLayout", "type": "wpilib.shuffleboard.ShuffleboardLayout"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardLayout", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardLayout"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase]", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}], "tooltip": "Gets the components that are direct children of this container.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getComponents"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "wpilib.shuffleboard.BuiltInLayouts"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List\" or \"Grid\"\n\n:returns: the layout", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInLayouts"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "wpilib.shuffleboard.LayoutType"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List\" or \"Grid\"\n\n:returns: the layout", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLayoutType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "str"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called. Note: this method should\nonly be used to use a layout type that is not already built into\nShuffleboard. To use a layout built into Shuffleboard, use\nGetLayout(std::string_view, const LayoutType&) and the layouts in\nBuiltInLayouts.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List Layout\" or \"Grid Layout\"\n\n:returns: the layout\n @see GetLayout(std::string_view, const LayoutType&)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}], "tooltip": "Gets the already-defined layout in this container with the given title.\n\n{@code\nShuffleboard::GetTab(\"Example Tab\")->getLayout(\"My Layout\",\n&BuiltInLayouts.kList);\n\n// Later...\nShuffleboard::GetTab(\"Example Tab\")->GetLayout(\"My Layout\");\n}\n\n:param title: the title of the layout to get\n\n:returns: the layout with the given title\n @throws if no layout has yet been defined with the given title", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "_LayoutComponent", "type": "wpilib.shuffleboard._LayoutComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._LayoutComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_LayoutComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "_LayoutComponent", "type": "wpilib.shuffleboard._LayoutComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._LayoutComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_LayoutComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "_LayoutComponent", "type": "wpilib.shuffleboard._LayoutComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._LayoutComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_LayoutComponent"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardTab.ts b/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardTab.ts
index 0d69dca9..6ed5d771 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardTab.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardTab.ts
@@ -11,55 +11,55 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 49 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardTab"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardTab", "args": [{"name": "root", "type": "wpilib.shuffleboard._shuffleboard._ShuffleboardRoot"}, {"name": "title", "type": "str"}], "tooltip": "", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardTab"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ShuffleboardRoot"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "wpiutil._wpiutil.Sendable"}], "tooltip": "Adds a widget to this container to display the given sendable.\n\n:param title: the title of the widget\n:param defaultValue: the sendable to display\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "defaultValue", "type": "wpiutil._wpiutil.Sendable"}], "tooltip": "Adds a widget to this container to display the given sendable.\n\n:param defaultValue: the sendable to display\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title, or if the sendable's name has not been\n specified", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "ntcore._ntcore.Value"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::shared_ptr)\n Add(std::string_view title, std::shared_ptr defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, bool)\n Add(std::string_view title, bool defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "int"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, int)\n Add(std::string_view title, int defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::string_view)\n Add(std::string_view title, std::string_view defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[bool]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], bool]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addBooleanArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addDoubleArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addFloat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addFloatArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], int]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addInteger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addIntegerArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addNumber"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addNumberArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "ntcore._ntcore.Value"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::shared_ptr), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(stdd::string_view, std::shared_ptr)\n Add(std::string_view title, std::shared_ptr defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, bool), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, bool)\n Add(std::string_view title, bool defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, double), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, float), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, float)\n Add(std::string_view title, float defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "int"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, int64_t), the value in the widget will be\nsaved on the robot and will be used when the robot program next starts\nrather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std:string_view, int64_t)\n Add(std::string_view title, int64_t defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::string_view), the value in the widget\nwill be saved on the robot and will be used when the robot program next\nstarts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::string_view)\n Add(std::string_view title, std::string_view defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[bool]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in\nthe widget will be saved on the robot and will be used when the robot\nprogram next starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "typeString", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param typeString: the NT type string\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], str]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[str]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addStringArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardTab", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardTab"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardTab", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardTab"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase]", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}], "tooltip": "Gets the components that are direct children of this container.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getComponents"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "wpilib.shuffleboard._shuffleboard.BuiltInLayouts"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List\" or \"Grid\"\n\n:returns: the layout", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInLayouts"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "wpilib.shuffleboard._shuffleboard.LayoutType"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List\" or \"Grid\"\n\n:returns: the layout", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLayoutType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "str"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called. Note: this method should\nonly be used to use a layout type that is not already built into\nShuffleboard. To use a layout built into Shuffleboard, use\nGetLayout(std::string_view, const LayoutType&) and the layouts in\nBuiltInLayouts.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List Layout\" or \"Grid Layout\"\n\n:returns: the layout\n @see GetLayout(std::string_view, const LayoutType&)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}], "tooltip": "Gets the already-defined layout in this container with the given title.\n\n{@code\nShuffleboard::GetTab(\"Example Tab\")->getLayout(\"My Layout\",\n&BuiltInLayouts.kList);\n\n// Later...\nShuffleboard::GetTab(\"Example Tab\")->GetLayout(\"My Layout\");\n}\n\n:param title: the title of the layout to get\n\n:returns: the layout with the given title\n @throws if no layout has yet been defined with the given title", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "my_ShuffleboardRoot"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard._ShuffleboardRoot", "args": [{"name": "shuffleboardTab", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardTab"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardTab", "FUNC": "getRoot"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardTab"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardTab"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.shuffleboard.ShuffleboardTab", "args": [{"name": "root", "type": "wpilib.shuffleboard._ShuffleboardRoot"}, {"name": "title", "type": "str"}], "tooltip": "", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardTab"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ShuffleboardRoot"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "wpiutil.Sendable"}], "tooltip": "Adds a widget to this container to display the given sendable.\n\n:param title: the title of the widget\n:param defaultValue: the sendable to display\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "defaultValue", "type": "wpiutil.Sendable"}], "tooltip": "Adds a widget to this container to display the given sendable.\n\n:param defaultValue: the sendable to display\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title, or if the sendable's name has not been\n specified", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "ntcore.Value"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::shared_ptr)\n Add(std::string_view title, std::shared_ptr defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, bool)\n Add(std::string_view title, bool defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "int"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, int)\n Add(std::string_view title, int defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::string_view)\n Add(std::string_view title, std::string_view defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[bool]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Adds a widget to this container to display the given data.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @throws IllegalArgumentException if a widget already exists in this\n container with the given title\n @see AddPersistent(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "add"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], bool]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addBooleanArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addDoubleArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addFloat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addFloatArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], int]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addInteger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addIntegerArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], float]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addNumber"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[float]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addNumberArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "ntcore.Value"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::shared_ptr), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(stdd::string_view, std::shared_ptr)\n Add(std::string_view title, std::shared_ptr defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "bool"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, bool), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, bool)\n Add(std::string_view title, bool defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, double), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, double)\n Add(std::string_view title, double defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "float"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, float), the value in the widget will be saved\non the robot and will be used when the robot program next starts rather\nthan ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, float)\n Add(std::string_view title, float defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "int"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, int64_t), the value in the widget will be\nsaved on the robot and will be used when the robot program next starts\nrather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std:string_view, int64_t)\n Add(std::string_view title, int64_t defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "str"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::string_view), the value in the widget\nwill be saved on the robot and will be used when the robot program next\nstarts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::string_view)\n Add(std::string_view title, std::string_view defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[bool]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[float]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[int]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in the\nwidget will be saved on the robot and will be used when the robot program\nnext starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "defaultValue", "type": "List[str]"}], "tooltip": "Adds a widget to this container to display a simple piece of data.\n\nUnlike Add(std::string_view, std::span), the value in\nthe widget will be saved on the robot and will be used when the robot\nprogram next starts rather than ``defaultValue``.\n\n:param title: the title of the widget\n:param defaultValue: the default value of the widget\n\n:returns: a widget to display the sendable data\n @see Add(std::string_view, std::span)\n Add(std::string_view title, std::span defaultValue)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addPersistent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "typeString", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[int]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param typeString: the NT type string\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addRaw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], str]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "supplier", "type": "Callable[[], list[str]]"}], "tooltip": "Adds a widget to this container. The widget will display the data provided\nby the value supplier. Changes made on the dashboard will not propagate to\nthe widget object, and will be overridden by values from the value\nsupplier.\n\n:param title: the title of the widget\n:param supplier: the supplier for values\n\n:returns: a widget to display data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "addStringArray"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardTab", "type": "wpilib.shuffleboard.ShuffleboardTab"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardTab", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardTab"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase]", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}], "tooltip": "Gets the components that are direct children of this container.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getComponents"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "wpilib.shuffleboard.BuiltInLayouts"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List\" or \"Grid\"\n\n:returns: the layout", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInLayouts"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "wpilib.shuffleboard.LayoutType"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List\" or \"Grid\"\n\n:returns: the layout", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLayoutType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}, {"name": "type", "type": "str"}], "tooltip": "Gets the layout with the given type and title, creating it if it does not\nalready exist at the time this method is called. Note: this method should\nonly be used to use a layout type that is not already built into\nShuffleboard. To use a layout built into Shuffleboard, use\nGetLayout(std::string_view, const LayoutType&) and the layouts in\nBuiltInLayouts.\n\n:param title: the title of the layout\n:param type: the type of the layout, eg \"List Layout\" or \"Grid Layout\"\n\n:returns: the layout\n @see GetLayout(std::string_view, const LayoutType&)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "shuffleboardContainer", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}], "tooltip": "Gets the already-defined layout in this container with the given title.\n\n{@code\nShuffleboard::GetTab(\"Example Tab\")->getLayout(\"My Layout\",\n&BuiltInLayouts.kList);\n\n// Later...\nShuffleboard::GetTab(\"Example Tab\")->GetLayout(\"My Layout\");\n}\n\n:param title: the title of the layout to get\n\n:returns: the layout with the given title\n @throws if no layout has yet been defined with the given title", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardContainer", "FUNC": "getLayout"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "my_ShuffleboardRoot"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._ShuffleboardRoot", "args": [{"name": "shuffleboardTab", "type": "wpilib.shuffleboard.ShuffleboardTab"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardTab", "FUNC": "getRoot"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardTab"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardValue.ts b/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardValue.ts
index 62af26db..3ebc4b22 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardValue.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.ShuffleboardValue.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.SimpleWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.SimpleWidget.ts
index 12e4b143..2c71126e 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.SimpleWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.SimpleWidget.ts
@@ -11,23 +11,23 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 17 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "parent", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}], "tooltip": "", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SimpleWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simpleWidget", "type": "wpilib.shuffleboard._shuffleboard.SimpleWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SimpleWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myGenericEntry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "ntcore._ntcore.GenericEntry", "args": [{"name": "simpleWidget", "type": "wpilib.shuffleboard._shuffleboard.SimpleWidget"}], "tooltip": "Gets the NetworkTable entry that contains the data for this widget.\nThe widget owns the entry; the returned pointer's lifetime is the same as\nthat of the widget.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SimpleWidget", "FUNC": "getEntry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleWidget"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myGenericEntry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "ntcore._ntcore.GenericEntry", "args": [{"name": "simpleWidget", "type": "wpilib.shuffleboard._shuffleboard.SimpleWidget"}, {"name": "typeString", "type": "str"}], "tooltip": "Gets the NetworkTable entry that contains the data for this widget.\nThe widget owns the entry; the returned pointer's lifetime is the same as\nthat of the widget.\n\n:param typeString: NT type string", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SimpleWidget", "FUNC": "getEntry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleWidget"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._shuffleboard._SimpleComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._shuffleboard._SimpleComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._shuffleboard._SimpleComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleWidget", "type": "wpilib.shuffleboard._shuffleboard._SimpleWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleWidget", "type": "wpilib.shuffleboard._shuffleboard._SimpleWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleWidget", "type": "wpilib.shuffleboard._shuffleboard._SimpleWidget"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleWidget"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "parent", "type": "wpilib.shuffleboard.ShuffleboardContainer"}, {"name": "title", "type": "str"}], "tooltip": "", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SimpleWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardContainer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "simpleWidget", "type": "wpilib.shuffleboard.SimpleWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SimpleWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myGenericEntry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "ntcore.GenericEntry", "args": [{"name": "simpleWidget", "type": "wpilib.shuffleboard.SimpleWidget"}], "tooltip": "Gets the NetworkTable entry that contains the data for this widget.\nThe widget owns the entry; the returned pointer's lifetime is the same as\nthat of the widget.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SimpleWidget", "FUNC": "getEntry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleWidget"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myGenericEntry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "ntcore.GenericEntry", "args": [{"name": "simpleWidget", "type": "wpilib.shuffleboard.SimpleWidget"}, {"name": "typeString", "type": "str"}], "tooltip": "Gets the NetworkTable entry that contains the data for this widget.\nThe widget owns the entry; the returned pointer's lifetime is the same as\nthat of the widget.\n\n:param typeString: NT type string", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SimpleWidget", "FUNC": "getEntry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleWidget"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._SimpleComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._SimpleComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._SimpleComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleWidget", "type": "wpilib.shuffleboard._SimpleWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleWidget", "type": "wpilib.shuffleboard._SimpleWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleWidget", "type": "wpilib.shuffleboard._SimpleWidget"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleWidget"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedBoolListValueWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedBoolListValueWidget.ts
index eb0bf012..ad1ad4d2 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedBoolListValueWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedBoolListValueWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedBoolListValueWidget", "type": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_bool"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_bool"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedBoolListValueWidget", "type": "wpilib.shuffleboard.SuppliedBoolListValueWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_bool"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedBoolValueWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedBoolValueWidget.ts
index c61ea888..1941c157 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedBoolValueWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedBoolValueWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedBoolValueWidget", "type": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedBoolValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_bool"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_bool"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_bool"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueWidget_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueWidget_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueWidget_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_bool"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_bool"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedBoolValueWidget", "type": "wpilib.shuffleboard.SuppliedBoolValueWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedBoolValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_bool"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_bool"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_bool"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueWidget_bool", "type": "wpilib.shuffleboard._SuppliedValueWidget_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueWidget_bool", "type": "wpilib.shuffleboard._SuppliedValueWidget_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueWidget_bool", "type": "wpilib.shuffleboard._SuppliedValueWidget_bool"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_bool"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedDoubleListValueWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedDoubleListValueWidget.ts
index d11cbbd7..01b91e7f 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedDoubleListValueWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedDoubleListValueWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedDoubleListValueWidget", "type": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_double"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_double"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedDoubleListValueWidget", "type": "wpilib.shuffleboard.SuppliedDoubleListValueWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_double", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_double", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_double", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_double"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_double"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedDoubleValueWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedDoubleValueWidget.ts
index aed00698..cb72cd11 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedDoubleValueWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedDoubleValueWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedDoubleValueWidget", "type": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_double"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_double"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_double"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueWidget_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueWidget_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueWidget_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_double"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_double"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedDoubleValueWidget", "type": "wpilib.shuffleboard.SuppliedDoubleValueWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_double"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_double"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_double"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueWidget_double", "type": "wpilib.shuffleboard._SuppliedValueWidget_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueWidget_double", "type": "wpilib.shuffleboard._SuppliedValueWidget_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueWidget_double", "type": "wpilib.shuffleboard._SuppliedValueWidget_double"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_double"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedFloatListValueWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedFloatListValueWidget.ts
index 4118fb14..c40e14bf 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedFloatListValueWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedFloatListValueWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedFloatListValueWidget", "type": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_float"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_float"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedFloatListValueWidget", "type": "wpilib.shuffleboard.SuppliedFloatListValueWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_float", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_float", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_float", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_float"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_float"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedFloatValueWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedFloatValueWidget.ts
index 6bf9e23f..67b3e55f 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedFloatValueWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedFloatValueWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedFloatValueWidget", "type": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedFloatValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_float"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_float"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_float"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueWidget_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueWidget_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueWidget_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_float"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_float"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedFloatValueWidget", "type": "wpilib.shuffleboard.SuppliedFloatValueWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedFloatValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_float"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_float"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_float"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueWidget_float", "type": "wpilib.shuffleboard._SuppliedValueWidget_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueWidget_float", "type": "wpilib.shuffleboard._SuppliedValueWidget_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueWidget_float", "type": "wpilib.shuffleboard._SuppliedValueWidget_float"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_float"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedIntListValueWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedIntListValueWidget.ts
index 3b4642a2..005b1c82 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedIntListValueWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedIntListValueWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedIntListValueWidget", "type": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedIntListValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_int"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_int", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_int"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_int", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_int"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_int", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_int"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedIntListValueWidget", "type": "wpilib.shuffleboard.SuppliedIntListValueWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedIntListValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_int", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_int"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_int", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_int", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_int"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_int", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_int", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_int"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_int", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_int"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedIntegerValueWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedIntegerValueWidget.ts
index 2d25c065..5dbbf183 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedIntegerValueWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedIntegerValueWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedIntegerValueWidget", "type": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_integer"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_integer"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_integer"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueWidget_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_integer"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_integer", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueWidget_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_integer"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_integer", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueWidget_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_integer"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_integer", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_integer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedIntegerValueWidget", "type": "wpilib.shuffleboard.SuppliedIntegerValueWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._SuppliedValueComponent_integer"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._SuppliedValueComponent_integer"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._SuppliedValueComponent_integer"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueWidget_integer", "type": "wpilib.shuffleboard._SuppliedValueWidget_integer"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_integer", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueWidget_integer", "type": "wpilib.shuffleboard._SuppliedValueWidget_integer"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_integer", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueWidget_integer", "type": "wpilib.shuffleboard._SuppliedValueWidget_integer"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_integer", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_integer"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedRawValueWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedRawValueWidget.ts
index d3c6d061..88c167f2 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedRawValueWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedRawValueWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedRawValueWidget", "type": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedRawValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_raw"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_raw"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_raw"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_raw"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedRawValueWidget", "type": "wpilib.shuffleboard.SuppliedRawValueWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedRawValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_raw"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedStringListValueWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedStringListValueWidget.ts
index 65ed29cd..8b2467d1 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedStringListValueWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedStringListValueWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedStringListValueWidget", "type": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedStringListValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_string"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_string"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedStringListValueWidget", "type": "wpilib.shuffleboard.SuppliedStringListValueWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedStringListValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_string", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_string", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_string", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_string"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_string"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedStringValueWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedStringValueWidget.ts
index 4f7afa13..0c440e34 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.SuppliedStringValueWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.SuppliedStringValueWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedStringValueWidget", "type": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedStringValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_string"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_string"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_string"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueWidget_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueWidget_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueWidget_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_string"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_string"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "suppliedStringValueWidget", "type": "wpilib.shuffleboard.SuppliedStringValueWidget"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.SuppliedStringValueWidget", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_string"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_string"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_string"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueWidget_string", "type": "wpilib.shuffleboard._SuppliedValueWidget_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueWidget_string", "type": "wpilib.shuffleboard._SuppliedValueWidget_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueWidget_string", "type": "wpilib.shuffleboard._SuppliedValueWidget_string"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_string"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard.WidgetType.ts b/src/blocks/generated/class_wpilib.shuffleboard.WidgetType.ts
index 73977479..040e5f95 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard.WidgetType.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard.WidgetType.ts
@@ -11,8 +11,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 2 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWidgetType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.shuffleboard._shuffleboard.WidgetType", "args": [{"name": "widgetName", "type": "str"}], "tooltip": "", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.WidgetType"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Gets the string type of the widget as defined by that widget in\nShuffleboard.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.WidgetType", "FUNC": "getWidgetName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myWidgetType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.shuffleboard.WidgetType", "args": [{"name": "widgetName", "type": "str"}], "tooltip": "", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.WidgetType"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Gets the string type of the widget as defined by that widget in\nShuffleboard.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.WidgetType", "FUNC": "getWidgetName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._ComplexComponent.ts b/src/blocks/generated/class_wpilib.shuffleboard._ComplexComponent.ts
index cb595686..1f3d2305 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._ComplexComponent.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._ComplexComponent.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._shuffleboard._ComplexComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._shuffleboard._ComplexComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._shuffleboard._ComplexComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._ComplexComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._ComplexComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._ComplexComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._ComplexWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard._ComplexWidget.ts
index f85129de..b1f1bdfe 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._ComplexWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._ComplexWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._shuffleboard._ComplexComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._shuffleboard._ComplexComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._shuffleboard._ComplexComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexWidget", "type": "wpilib.shuffleboard._shuffleboard._ComplexWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexWidget", "type": "wpilib.shuffleboard._shuffleboard._ComplexWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ComplexWidget", "args": [{"name": "_ComplexWidget", "type": "wpilib.shuffleboard._shuffleboard._ComplexWidget"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexWidget"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._ComplexComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._ComplexComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexComponent", "type": "wpilib.shuffleboard._ComplexComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexWidget", "type": "wpilib.shuffleboard._ComplexWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexWidget", "type": "wpilib.shuffleboard._ComplexWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myComplexWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ComplexWidget", "args": [{"name": "_ComplexWidget", "type": "wpilib.shuffleboard._ComplexWidget"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._ComplexWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_ComplexWidget"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._LayoutComponent.ts b/src/blocks/generated/class_wpilib.shuffleboard._LayoutComponent.ts
index 5de51f14..3cdb2547 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._LayoutComponent.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._LayoutComponent.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "_LayoutComponent", "type": "wpilib.shuffleboard._shuffleboard._LayoutComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._LayoutComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_LayoutComponent"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "_LayoutComponent", "type": "wpilib.shuffleboard._shuffleboard._LayoutComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._LayoutComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_LayoutComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardLayout", "args": [{"name": "_LayoutComponent", "type": "wpilib.shuffleboard._shuffleboard._LayoutComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._LayoutComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_LayoutComponent"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "_LayoutComponent", "type": "wpilib.shuffleboard._LayoutComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._LayoutComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_LayoutComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "_LayoutComponent", "type": "wpilib.shuffleboard._LayoutComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._LayoutComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_LayoutComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardLayout"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardLayout", "args": [{"name": "_LayoutComponent", "type": "wpilib.shuffleboard._LayoutComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._LayoutComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_LayoutComponent"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SimpleComponent.ts b/src/blocks/generated/class_wpilib.shuffleboard._SimpleComponent.ts
index 150345e4..4bafe01c 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SimpleComponent.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SimpleComponent.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._shuffleboard._SimpleComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._shuffleboard._SimpleComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._shuffleboard._SimpleComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._SimpleComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._SimpleComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._SimpleComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SimpleWidget.ts b/src/blocks/generated/class_wpilib.shuffleboard._SimpleWidget.ts
index f88308ff..7b1c934c 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SimpleWidget.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SimpleWidget.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._shuffleboard._SimpleComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._shuffleboard._SimpleComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._shuffleboard._SimpleComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleWidget", "type": "wpilib.shuffleboard._shuffleboard._SimpleWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleWidget", "type": "wpilib.shuffleboard._shuffleboard._SimpleWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SimpleWidget", "args": [{"name": "_SimpleWidget", "type": "wpilib.shuffleboard._shuffleboard._SimpleWidget"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleWidget"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._SimpleComponent"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._SimpleComponent"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleComponent", "type": "wpilib.shuffleboard._SimpleComponent"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleComponent", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleComponent"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleWidget", "type": "wpilib.shuffleboard._SimpleWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleWidget", "type": "wpilib.shuffleboard._SimpleWidget"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleWidget"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SimpleWidget", "args": [{"name": "_SimpleWidget", "type": "wpilib.shuffleboard._SimpleWidget"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SimpleWidget", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SimpleWidget"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_bool.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_bool.ts
index c5dc9225..7ecbf61e 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_bool.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_bool.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_bool"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_bool"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_bool"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_bool"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_bool"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_bool"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_double.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_double.ts
index 2081d4e8..14ce491a 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_double.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_double.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_double"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_double"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_double"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_double"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_double"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_double"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_float.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_float.ts
index 371805b0..4fc67e7c 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_float.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_float.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_float"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_float"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_float"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_float"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_float"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_float"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_integer.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_integer.ts
index a6f33bc5..727f5d58 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_integer.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_integer.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_integer"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_integer"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_integer"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._SuppliedValueComponent_integer"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._SuppliedValueComponent_integer"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._SuppliedValueComponent_integer"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_string.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_string.ts
index 772b551b..80727220 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_string.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_string.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_string"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_string"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_string"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_string"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_string"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_string"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_bool.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_bool.ts
index 49dd7c05..26f5a136 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_bool.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_bool.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_double.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_double.ts
index fe3897f4..507beb8f 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_double.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_double.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_float.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_float.ts
index 7d2a149c..2053642d 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_float.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_float.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_int.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_int.ts
index c0d84d84..906e15b0 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_int.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_int.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_raw.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_raw.ts
index 19a2aeba..cf711ec3 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_raw.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_raw.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_string.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_string.ts
index 804520ae..7f2c0ca2 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_string.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueComponent_vector_string.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_bool.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_bool.ts
index 14a38560..0882dcfe 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_bool.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_bool.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_bool"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_bool"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_bool"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueWidget_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueWidget_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueWidget_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_bool"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_bool"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_bool"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_bool"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueComponent_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_bool"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_bool", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_bool"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueWidget_bool", "type": "wpilib.shuffleboard._SuppliedValueWidget_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueWidget_bool", "type": "wpilib.shuffleboard._SuppliedValueWidget_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolValueWidget", "args": [{"name": "_SuppliedValueWidget_bool", "type": "wpilib.shuffleboard._SuppliedValueWidget_bool"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_bool"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_double.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_double.ts
index 9278c6ab..b5057f78 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_double.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_double.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_double"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_double"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_double"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueWidget_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueWidget_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueWidget_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_double"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_double"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_double"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_double"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueComponent_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_double"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_double", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_double"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueWidget_double", "type": "wpilib.shuffleboard._SuppliedValueWidget_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueWidget_double", "type": "wpilib.shuffleboard._SuppliedValueWidget_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleValueWidget", "args": [{"name": "_SuppliedValueWidget_double", "type": "wpilib.shuffleboard._SuppliedValueWidget_double"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_double"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_float.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_float.ts
index 84c586f5..34798d64 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_float.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_float.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_float"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_float"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_float"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueWidget_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueWidget_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueWidget_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_float"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_float"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_float"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_float"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueComponent_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_float"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_float", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_float"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueWidget_float", "type": "wpilib.shuffleboard._SuppliedValueWidget_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueWidget_float", "type": "wpilib.shuffleboard._SuppliedValueWidget_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatValueWidget", "args": [{"name": "_SuppliedValueWidget_float", "type": "wpilib.shuffleboard._SuppliedValueWidget_float"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_float"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_integer.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_integer.ts
index 2795928b..b0a27778 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_integer.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_integer.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_integer"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_integer"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_integer"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueWidget_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_integer"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_integer", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueWidget_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_integer"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_integer", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueWidget_integer", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_integer"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_integer", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_integer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._SuppliedValueComponent_integer"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._SuppliedValueComponent_integer"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueComponent_integer", "type": "wpilib.shuffleboard._SuppliedValueComponent_integer"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_integer", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_integer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueWidget_integer", "type": "wpilib.shuffleboard._SuppliedValueWidget_integer"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_integer", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueWidget_integer", "type": "wpilib.shuffleboard._SuppliedValueWidget_integer"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_integer", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_integer"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntegerValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntegerValueWidget", "args": [{"name": "_SuppliedValueWidget_integer", "type": "wpilib.shuffleboard._SuppliedValueWidget_integer"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_integer", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_integer"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_string.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_string.ts
index fa729c22..8842ed25 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_string.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_string.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_string"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_string"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_string"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueWidget_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueWidget_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueWidget_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_string"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_string"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_string"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_string"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueComponent_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_string"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_string", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_string"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueWidget_string", "type": "wpilib.shuffleboard._SuppliedValueWidget_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueWidget_string", "type": "wpilib.shuffleboard._SuppliedValueWidget_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringValueWidget", "args": [{"name": "_SuppliedValueWidget_string", "type": "wpilib.shuffleboard._SuppliedValueWidget_string"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_string"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_bool.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_bool.ts
index 83701aaf..9438b48c 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_bool.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_bool.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_bool", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_bool"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_bool"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_bool", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_bool"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_bool"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedBoolListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedBoolListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_bool", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_bool", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_bool"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_double.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_double.ts
index 0f109546..82c39b44 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_double.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_double.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_double", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_double"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_double"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_double", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_double"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_double", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_double"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_double", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_double", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_double"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_double"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedDoubleListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedDoubleListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_double", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_double"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_double", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_double"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_float.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_float.ts
index 08d8441d..23fc8aec 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_float.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_float.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_float", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_float"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_float"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_float", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_float"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_float", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_float"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_float", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_float", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_float"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_float"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedFloatListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedFloatListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_float", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_float"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_float", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_float"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_int.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_int.ts
index 9f85a3af..eebd7ba3 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_int.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_int.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_int"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_int", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_int"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_int", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_int", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_int"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_int", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_int"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_int", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_int"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_int", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_int"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_int", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_int"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_int", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_int", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_int"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_int", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_int"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedIntListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedIntListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_int", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_int"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_int", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_int"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_raw.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_raw.ts
index 3746c634..e61e6a5f 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_raw.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_raw.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_raw"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_raw"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_raw", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_raw"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_raw"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_raw", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_raw"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_raw"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedRawValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedRawValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_raw", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_raw", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_raw"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_string.ts b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_string.ts
index 692611ea..071c4f5f 100644
--- a/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_string.ts
+++ b/src/blocks/generated/class_wpilib.shuffleboard._SuppliedValueWidget_vector_string.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore._ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore._ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard._shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard._shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_string", "type": "wpilib.shuffleboard._shuffleboard._SuppliedValueWidget_vector_string"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_string"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}, {"name": "parentTable", "type": "ntcore.NetworkTable"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "Builds the entries for this value.\n\n:param parentTable: The table containing all the data for the parent. Values\n that require a complex entry or table structure should\n call ``parentTable.getSubtable(getTitle())`` to get\n the table to put data into. Values that only use a\n single entry should call\n ``parentTable.getEntry(getTitle())`` to get that\n entry.\n:param metaTable: The table containing all the metadata for this value and\n its sub-values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "buildInto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "metaTable", "type": "ntcore.NetworkTable"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "buildMetadata"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTable"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Disables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "disableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Enables user control of this widget in the Shuffleboard application.\n\nThis method is package-private to prevent users from enabling control\nthemselves. Has no effect if the sendable is not marked as an actuator with\nSendableBuilder::SetActuator().", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "enableIfActuator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myShuffleboardContainer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.ShuffleboardContainer", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getParent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardValue", "type": "wpilib.shuffleboard.ShuffleboardValue"}], "tooltip": "Gets the title of this Shuffleboard value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardValue", "FUNC": "getTitle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardValue"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "getType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "shuffleboardComponentBase", "type": "wpilib.shuffleboard.ShuffleboardComponentBase"}, {"name": "type", "type": "str"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard.ShuffleboardComponentBase", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardComponentBase"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "columnIndex", "type": "int"}, {"name": "rowIndex", "type": "int"}], "tooltip": "Sets the position of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\nIf the position of a single component is set, it is recommended to set the\npositions of *all* components inside a tab to prevent Shuffleboard\nfrom automatically placing another component there before the one with the\nspecific position is sent.\n\n:param columnIndex: the column in the tab to place this component\n:param rowIndex: the row in the tab to place this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "properties", "type": "dict[str, ntcore._ntcore.Value]"}], "tooltip": "Sets custom properties for this component. Property names are\ncase-sensitive and whitespace-insensitive (capitalization and spaces do not\nmatter).\n\n:param properties: the properties for this component\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withProperties"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDict"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueComponent_vector_string", "type": "wpilib.shuffleboard._SuppliedValueComponent_vector_string"}, {"name": "width", "type": "int"}, {"name": "height", "type": "int"}], "tooltip": "Sets the size of this component in the tab. This has no effect if this\ncomponent is inside a layout.\n\n:param width: how many columns wide the component should be\n:param height: how many rows high the component should be\n\n:returns: this component", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueComponent_vector_string", "FUNC": "withSize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueComponent_vector_string"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_string", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard.BuiltInWidgets"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object\n @see BuiltInWidgets", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInWidgets"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_string", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_string"}, {"name": "widgetType", "type": "wpilib.shuffleboard.WidgetType"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_string"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myWidgetType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySuppliedStringListValueWidget"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.shuffleboard.SuppliedStringListValueWidget", "args": [{"name": "_SuppliedValueWidget_vector_string", "type": "wpilib.shuffleboard._SuppliedValueWidget_vector_string"}, {"name": "widgetType", "type": "str"}], "tooltip": "Sets the type of widget used to display the data. If not set, the default\nwidget type will be used. This method should only be used to use a widget\nthat does not come built into Shuffleboard (i.e. one that comes with a\ncustom or third-party plugin). To use a widget that is built into\nShuffleboard, use WithWidget(WidgetType) and BuiltInWidgets.\n\n:param widgetType: the type of the widget used to display the data\n\n:returns: this widget object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard._SuppliedValueWidget_vector_string", "FUNC": "withWidget"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "my_SuppliedValueWidget_vector_string"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.ADIS16448_IMUSim.ts b/src/blocks/generated/class_wpilib.simulation.ADIS16448_IMUSim.ts
index eb8c3442..fcf2d4b5 100644
--- a/src/blocks/generated/class_wpilib.simulation.ADIS16448_IMUSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.ADIS16448_IMUSim.ts
@@ -11,16 +11,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 10 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.ADIS16448_IMUSim", "args": [{"name": "imu", "type": "wpilib._wpilib.ADIS16448_IMU"}], "tooltip": "Constructs from a ADIS16448_IMU object.\n\n:param imu: ADIS16448_IMU to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation._simulation.ADIS16448_IMUSim"}, {"name": "accel", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Sets the X axis acceleration.\n\n:param accel: The acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setAccelX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation._simulation.ADIS16448_IMUSim"}, {"name": "accel", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Sets the Y axis acceleration.\n\n:param accel: The acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setAccelY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation._simulation.ADIS16448_IMUSim"}, {"name": "accel", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Sets the Z axis acceleration.\n\n:param accel: The acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setAccelZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation._simulation.ADIS16448_IMUSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the X axis angle (CCW positive).\n\n:param angle: The angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setGyroAngleX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation._simulation.ADIS16448_IMUSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the Y axis angle (CCW positive).\n\n:param angle: The angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setGyroAngleY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation._simulation.ADIS16448_IMUSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the Z axis angle (CCW positive).\n\n:param angle: The angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setGyroAngleZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation._simulation.ADIS16448_IMUSim"}, {"name": "angularRate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the X axis angular rate (CCW positive).\n\n:param angularRate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setGyroRateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation._simulation.ADIS16448_IMUSim"}, {"name": "angularRate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the Y axis angular rate (CCW positive).\n\n:param angularRate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setGyroRateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation._simulation.ADIS16448_IMUSim"}, {"name": "angularRate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the Z axis angular rate (CCW positive).\n\n:param angularRate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setGyroRateZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.ADIS16448_IMUSim", "args": [{"name": "imu", "type": "wpilib.ADIS16448_IMU"}], "tooltip": "Constructs from a ADIS16448_IMU object.\n\n:param imu: ADIS16448_IMU to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMU"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation.ADIS16448_IMUSim"}, {"name": "accel", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Sets the X axis acceleration.\n\n:param accel: The acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setAccelX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation.ADIS16448_IMUSim"}, {"name": "accel", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Sets the Y axis acceleration.\n\n:param accel: The acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setAccelY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation.ADIS16448_IMUSim"}, {"name": "accel", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Sets the Z axis acceleration.\n\n:param accel: The acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setAccelZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation.ADIS16448_IMUSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the X axis angle (CCW positive).\n\n:param angle: The angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setGyroAngleX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation.ADIS16448_IMUSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the Y axis angle (CCW positive).\n\n:param angle: The angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setGyroAngleY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation.ADIS16448_IMUSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the Z axis angle (CCW positive).\n\n:param angle: The angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setGyroAngleZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation.ADIS16448_IMUSim"}, {"name": "angularRate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the X axis angular rate (CCW positive).\n\n:param angularRate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setGyroRateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation.ADIS16448_IMUSim"}, {"name": "angularRate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the Y axis angular rate (CCW positive).\n\n:param angularRate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setGyroRateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16448_IMUSim", "type": "wpilib.simulation.ADIS16448_IMUSim"}, {"name": "angularRate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the Z axis angular rate (CCW positive).\n\n:param angularRate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16448_IMUSim", "FUNC": "setGyroRateZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16448_IMUSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.ADIS16470_IMUSim.ts b/src/blocks/generated/class_wpilib.simulation.ADIS16470_IMUSim.ts
index b64faabc..7f17fa59 100644
--- a/src/blocks/generated/class_wpilib.simulation.ADIS16470_IMUSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.ADIS16470_IMUSim.ts
@@ -11,16 +11,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 10 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.ADIS16470_IMUSim", "args": [{"name": "imu", "type": "wpilib._wpilib.ADIS16470_IMU"}], "tooltip": "Constructs from a ADIS16470_IMU object.\n\n:param imu: ADIS16470_IMU to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation._simulation.ADIS16470_IMUSim"}, {"name": "accel", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Sets the X axis acceleration.\n\n:param accel: The acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setAccelX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation._simulation.ADIS16470_IMUSim"}, {"name": "accel", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Sets the Y axis acceleration.\n\n:param accel: The acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setAccelY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation._simulation.ADIS16470_IMUSim"}, {"name": "accel", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Sets the Z axis acceleration.\n\n:param accel: The acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setAccelZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation._simulation.ADIS16470_IMUSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the X axis angle (CCW positive).\n\n:param angle: The angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setGyroAngleX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation._simulation.ADIS16470_IMUSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the Y axis angle (CCW positive).\n\n:param angle: The angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setGyroAngleY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation._simulation.ADIS16470_IMUSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the Z axis angle (CCW positive).\n\n:param angle: The angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setGyroAngleZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation._simulation.ADIS16470_IMUSim"}, {"name": "angularRate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the X axis angular rate (CCW positive).\n\n:param angularRate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setGyroRateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation._simulation.ADIS16470_IMUSim"}, {"name": "angularRate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the Y axis angular rate (CCW positive).\n\n:param angularRate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setGyroRateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation._simulation.ADIS16470_IMUSim"}, {"name": "angularRate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the Z axis angular rate (CCW positive).\n\n:param angularRate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setGyroRateZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.ADIS16470_IMUSim", "args": [{"name": "imu", "type": "wpilib.ADIS16470_IMU"}], "tooltip": "Constructs from a ADIS16470_IMU object.\n\n:param imu: ADIS16470_IMU to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMU"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation.ADIS16470_IMUSim"}, {"name": "accel", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Sets the X axis acceleration.\n\n:param accel: The acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setAccelX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation.ADIS16470_IMUSim"}, {"name": "accel", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Sets the Y axis acceleration.\n\n:param accel: The acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setAccelY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation.ADIS16470_IMUSim"}, {"name": "accel", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Sets the Z axis acceleration.\n\n:param accel: The acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setAccelZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation.ADIS16470_IMUSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the X axis angle (CCW positive).\n\n:param angle: The angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setGyroAngleX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation.ADIS16470_IMUSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the Y axis angle (CCW positive).\n\n:param angle: The angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setGyroAngleY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation.ADIS16470_IMUSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the Z axis angle (CCW positive).\n\n:param angle: The angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setGyroAngleZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation.ADIS16470_IMUSim"}, {"name": "angularRate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the X axis angular rate (CCW positive).\n\n:param angularRate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setGyroRateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation.ADIS16470_IMUSim"}, {"name": "angularRate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the Y axis angular rate (CCW positive).\n\n:param angularRate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setGyroRateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDIS16470_IMUSim", "type": "wpilib.simulation.ADIS16470_IMUSim"}, {"name": "angularRate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the Z axis angular rate (CCW positive).\n\n:param angularRate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADIS16470_IMUSim", "FUNC": "setGyroRateZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADIS16470_IMUSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.ADXL345Sim.ts b/src/blocks/generated/class_wpilib.simulation.ADXL345Sim.ts
index 69a84d70..9d13c51c 100644
--- a/src/blocks/generated/class_wpilib.simulation.ADXL345Sim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.ADXL345Sim.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL345Sim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.ADXL345Sim", "args": [{"name": "accel", "type": "wpilib._wpilib.ADXL345_I2C"}], "tooltip": "Constructs from a ADXL345_I2C object.\n\n:param accel: ADXL345 accel to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL345Sim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL345Sim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.ADXL345Sim", "args": [{"name": "accel", "type": "wpilib._wpilib.ADXL345_SPI"}], "tooltip": "Constructs from a ADXL345_SPI object.\n\n:param accel: ADXL345 accel to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL345Sim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345Sim", "type": "wpilib.simulation._simulation.ADXL345Sim"}, {"name": "accel", "type": "float"}], "tooltip": "Sets the X acceleration.\n\n:param accel: The X acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL345Sim", "FUNC": "setX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345Sim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345Sim", "type": "wpilib.simulation._simulation.ADXL345Sim"}, {"name": "accel", "type": "float"}], "tooltip": "Sets the Y acceleration.\n\n:param accel: The Y acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL345Sim", "FUNC": "setY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345Sim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345Sim", "type": "wpilib.simulation._simulation.ADXL345Sim"}, {"name": "accel", "type": "float"}], "tooltip": "Sets the Z acceleration.\n\n:param accel: The Z acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL345Sim", "FUNC": "setZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345Sim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL345Sim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.ADXL345Sim", "args": [{"name": "accel", "type": "wpilib.ADXL345_I2C"}], "tooltip": "Constructs from a ADXL345_I2C object.\n\n:param accel: ADXL345 accel to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL345Sim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_I2C"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL345Sim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.ADXL345Sim", "args": [{"name": "accel", "type": "wpilib.ADXL345_SPI"}], "tooltip": "Constructs from a ADXL345_SPI object.\n\n:param accel: ADXL345 accel to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL345Sim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345_SPI"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345Sim", "type": "wpilib.simulation.ADXL345Sim"}, {"name": "accel", "type": "float"}], "tooltip": "Sets the X acceleration.\n\n:param accel: The X acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL345Sim", "FUNC": "setX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345Sim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345Sim", "type": "wpilib.simulation.ADXL345Sim"}, {"name": "accel", "type": "float"}], "tooltip": "Sets the Y acceleration.\n\n:param accel: The Y acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL345Sim", "FUNC": "setY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345Sim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL345Sim", "type": "wpilib.simulation.ADXL345Sim"}, {"name": "accel", "type": "float"}], "tooltip": "Sets the Z acceleration.\n\n:param accel: The Z acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL345Sim", "FUNC": "setZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL345Sim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.ADXL362Sim.ts b/src/blocks/generated/class_wpilib.simulation.ADXL362Sim.ts
index e595200c..28a28232 100644
--- a/src/blocks/generated/class_wpilib.simulation.ADXL362Sim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.ADXL362Sim.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL362Sim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.ADXL362Sim", "args": [{"name": "accel", "type": "wpilib._wpilib.ADXL362"}], "tooltip": "Constructs from a ADXL362 object.\n\n:param accel: ADXL362 accel to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL362Sim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL362Sim", "type": "wpilib.simulation._simulation.ADXL362Sim"}, {"name": "accel", "type": "float"}], "tooltip": "Sets the X acceleration.\n\n:param accel: The X acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL362Sim", "FUNC": "setX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362Sim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL362Sim", "type": "wpilib.simulation._simulation.ADXL362Sim"}, {"name": "accel", "type": "float"}], "tooltip": "Sets the Y acceleration.\n\n:param accel: The Y acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL362Sim", "FUNC": "setY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362Sim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL362Sim", "type": "wpilib.simulation._simulation.ADXL362Sim"}, {"name": "accel", "type": "float"}], "tooltip": "Sets the Z acceleration.\n\n:param accel: The Z acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL362Sim", "FUNC": "setZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362Sim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXL362Sim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.ADXL362Sim", "args": [{"name": "accel", "type": "wpilib.ADXL362"}], "tooltip": "Constructs from a ADXL362 object.\n\n:param accel: ADXL362 accel to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL362Sim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL362Sim", "type": "wpilib.simulation.ADXL362Sim"}, {"name": "accel", "type": "float"}], "tooltip": "Sets the X acceleration.\n\n:param accel: The X acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL362Sim", "FUNC": "setX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362Sim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL362Sim", "type": "wpilib.simulation.ADXL362Sim"}, {"name": "accel", "type": "float"}], "tooltip": "Sets the Y acceleration.\n\n:param accel: The Y acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL362Sim", "FUNC": "setY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362Sim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXL362Sim", "type": "wpilib.simulation.ADXL362Sim"}, {"name": "accel", "type": "float"}], "tooltip": "Sets the Z acceleration.\n\n:param accel: The Z acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXL362Sim", "FUNC": "setZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXL362Sim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.ADXRS450_GyroSim.ts b/src/blocks/generated/class_wpilib.simulation.ADXRS450_GyroSim.ts
index 5316a81b..9c599770 100644
--- a/src/blocks/generated/class_wpilib.simulation.ADXRS450_GyroSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.ADXRS450_GyroSim.ts
@@ -11,9 +11,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 3 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXRS450_GyroSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.ADXRS450_GyroSim", "args": [{"name": "gyro", "type": "wpilib._wpilib.ADXRS450_Gyro"}], "tooltip": "Constructs from a ADXRS450_Gyro object.\n\n:param gyro: ADXRS450_Gyro to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXRS450_GyroSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXRS450_GyroSim", "type": "wpilib.simulation._simulation.ADXRS450_GyroSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the angle.\n\n:param angle: The angle (clockwise positive).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXRS450_GyroSim", "FUNC": "setAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_GyroSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXRS450_GyroSim", "type": "wpilib.simulation._simulation.ADXRS450_GyroSim"}, {"name": "rate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the angular rate (clockwise positive).\n\n:param rate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXRS450_GyroSim", "FUNC": "setRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_GyroSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myADXRS450_GyroSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.ADXRS450_GyroSim", "args": [{"name": "gyro", "type": "wpilib.ADXRS450_Gyro"}], "tooltip": "Constructs from a ADXRS450_Gyro object.\n\n:param gyro: ADXRS450_Gyro to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXRS450_GyroSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_Gyro"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXRS450_GyroSim", "type": "wpilib.simulation.ADXRS450_GyroSim"}, {"name": "angle", "type": "wpimath.units.degrees"}], "tooltip": "Sets the angle.\n\n:param angle: The angle (clockwise positive).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXRS450_GyroSim", "FUNC": "setAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_GyroSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "aDXRS450_GyroSim", "type": "wpilib.simulation.ADXRS450_GyroSim"}, {"name": "rate", "type": "wpimath.units.degrees_per_second"}], "tooltip": "Sets the angular rate (clockwise positive).\n\n:param rate: The angular rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ADXRS450_GyroSim", "FUNC": "setRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myADXRS450_GyroSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.AddressableLEDSim.ts b/src/blocks/generated/class_wpilib.simulation.AddressableLEDSim.ts
index 6ce4ee93..099393ee 100644
--- a/src/blocks/generated/class_wpilib.simulation.AddressableLEDSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.AddressableLEDSim.ts
@@ -11,25 +11,25 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 19 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAddressableLEDSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.AddressableLEDSim", "args": [], "tooltip": "Constructs for the first addressable LED.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAddressableLEDSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.AddressableLEDSim", "args": [{"name": "addressableLED", "type": "wpilib._wpilib.AddressableLED"}], "tooltip": "Constructs from an AddressableLED object.\n\n:param addressableLED: AddressableLED to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAddressableLEDSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.AddressableLEDSim", "args": [{"name": "pwmChannel", "type": "int"}], "tooltip": "Creates an AddressableLEDSim for a PWM channel.\n\n:param pwmChannel: PWM channel\n\n:returns: Simulated object\n @throws std::out_of_range if no AddressableLED is configured for that\n channel", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "createForChannel"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAddressableLEDSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.AddressableLEDSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Creates an AddressableLEDSim for a simulated index.\nThe index is incremented for each simulated AddressableLED.\n\n:param index: simulator index\n\n:returns: Simulated object", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "createForIndex"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}, {"name": "data", "type": "hal._wpiHal.AddressableLEDData"}], "tooltip": "Get the LED data.\n\n:param data: output parameter to fill with LED data\n\n:returns: the length of the LED data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "getData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}], "tooltip": "Check if initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}], "tooltip": "Get the length of the LED strip.\n\n:returns: the length", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "getLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}], "tooltip": "Get the output port.\n\n:returns: the output port", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "getOutputPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}], "tooltip": "Check if the LEDs are running.\n\n:returns: true if they are", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "getRunning"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}, {"name": "callback", "type": "Callable[[str, int, int], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the LED data.\n\n:param callback: the callback that will be called whenever the LED data is\n changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "registerDataCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the Initialized property.\n\n:param callback: the callback that will be called whenever the Initialized\n property is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object storing this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the length.\n\n:param callback: the callback that will be called whenever the length is\n changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "registerLengthCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the output port.\n\n:param callback: the callback that will be called whenever the output port\n is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "registerOutputPortCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the LEDs are running.\n\n:param callback: the callback that will be called whenever the LED state is\n changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "registerRunningCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}, {"name": "data", "type": "hal._wpiHal.AddressableLEDData"}, {"name": "length", "type": "int"}], "tooltip": "Change the LED data.\n\n:param data: the new data\n:param length: the length of the LED data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "setData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Change the Initialized value of the LED strip.\n\n:param initialized: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}, {"name": "length", "type": "int"}], "tooltip": "Change the length of the LED strip.\n\n:param length: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "setLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}, {"name": "outputPort", "type": "int"}], "tooltip": "Change the output port.\n\n:param outputPort: the new output port", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "setOutputPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation._simulation.AddressableLEDSim"}, {"name": "running", "type": "bool"}], "tooltip": "Change whether the LEDs are active.\n\n:param running: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "setRunning"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAddressableLEDSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.AddressableLEDSim", "args": [], "tooltip": "Constructs for the first addressable LED.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAddressableLEDSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.AddressableLEDSim", "args": [{"name": "addressableLED", "type": "wpilib.AddressableLED"}], "tooltip": "Constructs from an AddressableLED object.\n\n:param addressableLED: AddressableLED to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLED"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAddressableLEDSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.AddressableLEDSim", "args": [{"name": "pwmChannel", "type": "int"}], "tooltip": "Creates an AddressableLEDSim for a PWM channel.\n\n:param pwmChannel: PWM channel\n\n:returns: Simulated object\n @throws std::out_of_range if no AddressableLED is configured for that\n channel", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "createForChannel"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAddressableLEDSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.AddressableLEDSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Creates an AddressableLEDSim for a simulated index.\nThe index is incremented for each simulated AddressableLED.\n\n:param index: simulator index\n\n:returns: Simulated object", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "createForIndex"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}, {"name": "data", "type": "hal.AddressableLEDData"}], "tooltip": "Get the LED data.\n\n:param data: output parameter to fill with LED data\n\n:returns: the length of the LED data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "getData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}], "tooltip": "Check if initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}], "tooltip": "Get the length of the LED strip.\n\n:returns: the length", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "getLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}], "tooltip": "Get the output port.\n\n:returns: the output port", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "getOutputPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}], "tooltip": "Check if the LEDs are running.\n\n:returns: true if they are", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "getRunning"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}, {"name": "callback", "type": "Callable[[str, int, int], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the LED data.\n\n:param callback: the callback that will be called whenever the LED data is\n changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "registerDataCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the Initialized property.\n\n:param callback: the callback that will be called whenever the Initialized\n property is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object storing this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the length.\n\n:param callback: the callback that will be called whenever the length is\n changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "registerLengthCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the output port.\n\n:param callback: the callback that will be called whenever the output port\n is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "registerOutputPortCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the LEDs are running.\n\n:param callback: the callback that will be called whenever the LED state is\n changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "registerRunningCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}, {"name": "data", "type": "hal.AddressableLEDData"}, {"name": "length", "type": "int"}], "tooltip": "Change the LED data.\n\n:param data: the new data\n:param length: the length of the LED data", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "setData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Change the Initialized value of the LED strip.\n\n:param initialized: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}, {"name": "length", "type": "int"}], "tooltip": "Change the length of the LED strip.\n\n:param length: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "setLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}, {"name": "outputPort", "type": "int"}], "tooltip": "Change the output port.\n\n:param outputPort: the new output port", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "setOutputPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "addressableLEDSim", "type": "wpilib.simulation.AddressableLEDSim"}, {"name": "running", "type": "bool"}], "tooltip": "Change whether the LEDs are active.\n\n:param running: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AddressableLEDSim", "FUNC": "setRunning"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.AnalogEncoderSim.ts b/src/blocks/generated/class_wpilib.simulation.AnalogEncoderSim.ts
index bd33292a..424002fa 100644
--- a/src/blocks/generated/class_wpilib.simulation.AnalogEncoderSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.AnalogEncoderSim.ts
@@ -11,9 +11,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 3 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogEncoderSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.AnalogEncoderSim", "args": [{"name": "encoder", "type": "wpilib._wpilib.AnalogEncoder"}], "tooltip": "Constructs from an AnalogEncoder object.\n\n:param encoder: AnalogEncoder to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogEncoderSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoder"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogEncoderSim", "type": "wpilib.simulation._simulation.AnalogEncoderSim"}], "tooltip": "Get the simulated position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogEncoderSim", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogEncoderSim", "type": "wpilib.simulation._simulation.AnalogEncoderSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the position.\n\n:param value: The position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogEncoderSim", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoderSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogEncoderSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.AnalogEncoderSim", "args": [{"name": "encoder", "type": "wpilib.AnalogEncoder"}], "tooltip": "Constructs from an AnalogEncoder object.\n\n:param encoder: AnalogEncoder to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogEncoderSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoder"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogEncoderSim", "type": "wpilib.simulation.AnalogEncoderSim"}], "tooltip": "Get the simulated position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogEncoderSim", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogEncoderSim", "type": "wpilib.simulation.AnalogEncoderSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the position.\n\n:param value: The position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogEncoderSim", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogEncoderSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.AnalogGyroSim.ts b/src/blocks/generated/class_wpilib.simulation.AnalogGyroSim.ts
index ff4cc36f..6dd2d793 100644
--- a/src/blocks/generated/class_wpilib.simulation.AnalogGyroSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.AnalogGyroSim.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogGyroSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.AnalogGyroSim", "args": [{"name": "gyro", "type": "wpilib._wpilib.AnalogGyro"}], "tooltip": "Constructs from an AnalogGyro object.\n\n:param gyro: AnalogGyro to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogGyroSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.AnalogGyroSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from an analog input channel number.\n\n:param channel: Channel number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation._simulation.AnalogGyroSim"}], "tooltip": "Get the current angle of the gyro.\n\n:returns: the angle measured by the gyro", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation._simulation.AnalogGyroSim"}], "tooltip": "Check if the gyro is initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation._simulation.AnalogGyroSim"}], "tooltip": "Get the rate of angle change on this gyro.\n\n:returns: the rate", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation._simulation.AnalogGyroSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the angle.\n\n:param callback: the callback that will be called whenever the angle changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "registerAngleCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation._simulation.AnalogGyroSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the gyro is initialized.\n\n:param callback: the callback that will be called whenever the gyro is\n initialized\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation._simulation.AnalogGyroSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the rate.\n\n:param callback: the callback that will be called whenever the rate changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "registerRateCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation._simulation.AnalogGyroSim"}], "tooltip": "Reset all simulation data for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation._simulation.AnalogGyroSim"}, {"name": "angle", "type": "float"}], "tooltip": "Change the angle measured by the gyro.\n\n:param angle: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "setAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation._simulation.AnalogGyroSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Set whether this gyro is initialized.\n\n:param initialized: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation._simulation.AnalogGyroSim"}, {"name": "rate", "type": "float"}], "tooltip": "Change the rate of the gyro.\n\n:param rate: the new rate", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "setRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogGyroSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.AnalogGyroSim", "args": [{"name": "gyro", "type": "wpilib.AnalogGyro"}], "tooltip": "Constructs from an AnalogGyro object.\n\n:param gyro: AnalogGyro to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyro"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogGyroSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.AnalogGyroSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from an analog input channel number.\n\n:param channel: Channel number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation.AnalogGyroSim"}], "tooltip": "Get the current angle of the gyro.\n\n:returns: the angle measured by the gyro", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation.AnalogGyroSim"}], "tooltip": "Check if the gyro is initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation.AnalogGyroSim"}], "tooltip": "Get the rate of angle change on this gyro.\n\n:returns: the rate", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation.AnalogGyroSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the angle.\n\n:param callback: the callback that will be called whenever the angle changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "registerAngleCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation.AnalogGyroSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the gyro is initialized.\n\n:param callback: the callback that will be called whenever the gyro is\n initialized\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation.AnalogGyroSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the rate.\n\n:param callback: the callback that will be called whenever the rate changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "registerRateCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation.AnalogGyroSim"}], "tooltip": "Reset all simulation data for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation.AnalogGyroSim"}, {"name": "angle", "type": "float"}], "tooltip": "Change the angle measured by the gyro.\n\n:param angle: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "setAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation.AnalogGyroSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Set whether this gyro is initialized.\n\n:param initialized: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogGyroSim", "type": "wpilib.simulation.AnalogGyroSim"}, {"name": "rate", "type": "float"}], "tooltip": "Change the rate of the gyro.\n\n:param rate: the new rate", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogGyroSim", "FUNC": "setRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogGyroSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.AnalogInputSim.ts b/src/blocks/generated/class_wpilib.simulation.AnalogInputSim.ts
index fbdd6ee2..714fcdb0 100644
--- a/src/blocks/generated/class_wpilib.simulation.AnalogInputSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.AnalogInputSim.ts
@@ -11,36 +11,36 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 30 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogInputSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.AnalogInputSim", "args": [{"name": "analogInput", "type": "wpilib._wpilib.AnalogInput"}], "tooltip": "Constructs from an AnalogInput object.\n\n:param analogInput: AnalogInput to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogInputSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.AnalogInputSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from an analog input channel number.\n\n:param channel: Channel number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}], "tooltip": "Get the accumulator center.\n\n:returns: the accumulator center", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getAccumulatorCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}], "tooltip": "Get the accumulator count.\n\n:returns: the accumulator count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getAccumulatorCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}], "tooltip": "Get the accumulator deadband.\n\n:returns: the accumulator deadband", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getAccumulatorDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}], "tooltip": "Check if the accumulator has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getAccumulatorInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}], "tooltip": "Get the accumulator value.\n\n:returns: the accumulator value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getAccumulatorValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}], "tooltip": "Get the number of average bits.\n\n:returns: the number of average bits", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getAverageBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}], "tooltip": "Check if this analog input has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}], "tooltip": "Get the amount of oversampling bits.\n\n:returns: the amount of oversampling bits", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getOversampleBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}], "tooltip": "Get the voltage.\n\n:returns: the voltage", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the accumulator center.\n\n:param callback: the callback that will be called whenever the accumulator\n center is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerAccumulatorCenterCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the accumulator count.\n\n:param callback: the callback that will be called whenever the accumulator\n count is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerAccumulatorCountCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the accumulator deadband.\n\n:param callback: the callback that will be called whenever the accumulator\n deadband is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerAccumulatorDeadbandCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the accumulator is initialized.\n\n:param callback: the callback that will be called whenever the accumulator\n is initialized\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerAccumulatorInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the accumulator value.\n\n:param callback: the callback that will be called whenever the accumulator\n value is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerAccumulatorValueCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the number of average bits.\n\n:param callback: the callback that will be called whenever the number of\n average bits is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerAverageBitsCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the analog input is initialized.\n\n:param callback: the callback that will be called whenever the analog input\n is initialized\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the amount of oversampling bits.\n\n:param callback: the callback that will be called whenever the oversampling\n bits are changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerOversampleBitsCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the voltage.\n\n:param callback: the callback that will be called whenever the voltage is\n changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerVoltageCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}], "tooltip": "Reset all simulation data for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "accumulatorCenter", "type": "int"}], "tooltip": "Change the accumulator center.\n\n:param accumulatorCenter: the new center", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setAccumulatorCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "accumulatorCount", "type": "int"}], "tooltip": "Change the accumulator count.\n\n:param accumulatorCount: the new count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setAccumulatorCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "accumulatorDeadband", "type": "int"}], "tooltip": "Change the accumulator deadband.\n\n:param accumulatorDeadband: the new deadband", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setAccumulatorDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "accumulatorInitialized", "type": "bool"}], "tooltip": "Change whether the accumulator has been initialized.\n\n:param accumulatorInitialized: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setAccumulatorInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "accumulatorValue", "type": "int"}], "tooltip": "Change the accumulator value.\n\n:param accumulatorValue: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setAccumulatorValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "averageBits", "type": "int"}], "tooltip": "Change the number of average bits.\n\n:param averageBits: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setAverageBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Change whether this analog input has been initialized.\n\n:param initialized: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "oversampleBits", "type": "int"}], "tooltip": "Change the amount of oversampling bits.\n\n:param oversampleBits: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setOversampleBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation._simulation.AnalogInputSim"}, {"name": "voltage", "type": "float"}], "tooltip": "Change the voltage.\n\n:param voltage: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogInputSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.AnalogInputSim", "args": [{"name": "analogInput", "type": "wpilib.AnalogInput"}], "tooltip": "Constructs from an AnalogInput object.\n\n:param analogInput: AnalogInput to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInput"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogInputSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.AnalogInputSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from an analog input channel number.\n\n:param channel: Channel number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}], "tooltip": "Get the accumulator center.\n\n:returns: the accumulator center", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getAccumulatorCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}], "tooltip": "Get the accumulator count.\n\n:returns: the accumulator count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getAccumulatorCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}], "tooltip": "Get the accumulator deadband.\n\n:returns: the accumulator deadband", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getAccumulatorDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}], "tooltip": "Check if the accumulator has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getAccumulatorInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}], "tooltip": "Get the accumulator value.\n\n:returns: the accumulator value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getAccumulatorValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}], "tooltip": "Get the number of average bits.\n\n:returns: the number of average bits", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getAverageBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}], "tooltip": "Check if this analog input has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}], "tooltip": "Get the amount of oversampling bits.\n\n:returns: the amount of oversampling bits", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getOversampleBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}], "tooltip": "Get the voltage.\n\n:returns: the voltage", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the accumulator center.\n\n:param callback: the callback that will be called whenever the accumulator\n center is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerAccumulatorCenterCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the accumulator count.\n\n:param callback: the callback that will be called whenever the accumulator\n count is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerAccumulatorCountCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the accumulator deadband.\n\n:param callback: the callback that will be called whenever the accumulator\n deadband is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerAccumulatorDeadbandCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the accumulator is initialized.\n\n:param callback: the callback that will be called whenever the accumulator\n is initialized\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerAccumulatorInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the accumulator value.\n\n:param callback: the callback that will be called whenever the accumulator\n value is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerAccumulatorValueCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the number of average bits.\n\n:param callback: the callback that will be called whenever the number of\n average bits is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerAverageBitsCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the analog input is initialized.\n\n:param callback: the callback that will be called whenever the analog input\n is initialized\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the amount of oversampling bits.\n\n:param callback: the callback that will be called whenever the oversampling\n bits are changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerOversampleBitsCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the voltage.\n\n:param callback: the callback that will be called whenever the voltage is\n changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "registerVoltageCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}], "tooltip": "Reset all simulation data for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "accumulatorCenter", "type": "int"}], "tooltip": "Change the accumulator center.\n\n:param accumulatorCenter: the new center", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setAccumulatorCenter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "accumulatorCount", "type": "int"}], "tooltip": "Change the accumulator count.\n\n:param accumulatorCount: the new count.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setAccumulatorCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "accumulatorDeadband", "type": "int"}], "tooltip": "Change the accumulator deadband.\n\n:param accumulatorDeadband: the new deadband", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setAccumulatorDeadband"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "accumulatorInitialized", "type": "bool"}], "tooltip": "Change whether the accumulator has been initialized.\n\n:param accumulatorInitialized: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setAccumulatorInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "accumulatorValue", "type": "int"}], "tooltip": "Change the accumulator value.\n\n:param accumulatorValue: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setAccumulatorValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "averageBits", "type": "int"}], "tooltip": "Change the number of average bits.\n\n:param averageBits: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setAverageBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Change whether this analog input has been initialized.\n\n:param initialized: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "oversampleBits", "type": "int"}], "tooltip": "Change the amount of oversampling bits.\n\n:param oversampleBits: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setOversampleBits"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogInputSim", "type": "wpilib.simulation.AnalogInputSim"}, {"name": "voltage", "type": "float"}], "tooltip": "Change the voltage.\n\n:param voltage: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogInputSim", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogInputSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.AnalogOutputSim.ts b/src/blocks/generated/class_wpilib.simulation.AnalogOutputSim.ts
index 8f9ec67d..61875495 100644
--- a/src/blocks/generated/class_wpilib.simulation.AnalogOutputSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.AnalogOutputSim.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogOutputSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.AnalogOutputSim", "args": [{"name": "analogOutput", "type": "wpilib._wpilib.AnalogOutput"}], "tooltip": "Constructs from an AnalogOutput object.\n\n:param analogOutput: AnalogOutput to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutput"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogOutputSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.AnalogOutputSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from an analog output channel number.\n\n:param channel: Channel number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation._simulation.AnalogOutputSim"}], "tooltip": "Check whether this analog output has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation._simulation.AnalogOutputSim"}], "tooltip": "Read the analog output voltage.\n\n:returns: the voltage on this analog output", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation._simulation.AnalogOutputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when this analog output is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation._simulation.AnalogOutputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the voltage changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "registerVoltageCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation._simulation.AnalogOutputSim"}], "tooltip": "Reset all simulation data on this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation._simulation.AnalogOutputSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether this analog output has been initialized.\n\n:param initialized: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation._simulation.AnalogOutputSim"}, {"name": "voltage", "type": "float"}], "tooltip": "Set the analog output voltage.\n\n:param voltage: the new voltage on this analog output", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogOutputSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.AnalogOutputSim", "args": [{"name": "analogOutput", "type": "wpilib.AnalogOutput"}], "tooltip": "Constructs from an AnalogOutput object.\n\n:param analogOutput: AnalogOutput to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutput"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogOutputSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.AnalogOutputSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from an analog output channel number.\n\n:param channel: Channel number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation.AnalogOutputSim"}], "tooltip": "Check whether this analog output has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation.AnalogOutputSim"}], "tooltip": "Read the analog output voltage.\n\n:returns: the voltage on this analog output", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation.AnalogOutputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when this analog output is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation.AnalogOutputSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the voltage changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "registerVoltageCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation.AnalogOutputSim"}], "tooltip": "Reset all simulation data on this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation.AnalogOutputSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether this analog output has been initialized.\n\n:param initialized: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogOutputSim", "type": "wpilib.simulation.AnalogOutputSim"}, {"name": "voltage", "type": "float"}], "tooltip": "Set the analog output voltage.\n\n:param voltage: the new voltage on this analog output", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogOutputSim", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogOutputSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.AnalogTriggerSim.ts b/src/blocks/generated/class_wpilib.simulation.AnalogTriggerSim.ts
index 0f3b9c9c..ef7b41ff 100644
--- a/src/blocks/generated/class_wpilib.simulation.AnalogTriggerSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.AnalogTriggerSim.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.AnalogTriggerSim", "args": [{"name": "analogTrigger", "type": "wpilib._wpilib.AnalogTrigger"}], "tooltip": "Constructs from an AnalogTrigger object.\n\n:param analogTrigger: AnalogTrigger to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.AnalogTriggerSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Creates an AnalogTriggerSim for an analog input channel.\n\n:param channel: analog input channel\n\n:returns: Simulated object\n @throws std::out_of_range if no AnalogTrigger is configured for that\n channel", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "createForChannel"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.AnalogTriggerSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Creates an AnalogTriggerSim for a simulated index.\nThe index is incremented for each simulated AnalogTrigger.\n\n:param index: simulator index\n\n:returns: Simulated object", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "createForIndex"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation._simulation.AnalogTriggerSim"}], "tooltip": "Check if this analog trigger has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation._simulation.AnalogTriggerSim"}], "tooltip": "Get the lower bound.\n\n:returns: the lower bound", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "getTriggerLowerBound"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation._simulation.AnalogTriggerSim"}], "tooltip": "Get the upper bound.\n\n:returns: the upper bound", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "getTriggerUpperBound"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation._simulation.AnalogTriggerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the analog trigger is initialized.\n\n:param callback: the callback that will be called whenever the analog\n trigger is initialized\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation._simulation.AnalogTriggerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the lower bound.\n\n:param callback: the callback that will be called whenever the lower bound\n is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "registerTriggerLowerBoundCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation._simulation.AnalogTriggerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the upper bound.\n\n:param callback: the callback that will be called whenever the upper bound\n is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "registerTriggerUpperBoundCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation._simulation.AnalogTriggerSim"}], "tooltip": "Reset all simulation data for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation._simulation.AnalogTriggerSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Change whether this analog trigger has been initialized.\n\n:param initialized: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation._simulation.AnalogTriggerSim"}, {"name": "triggerLowerBound", "type": "float"}], "tooltip": "Change the lower bound.\n\n:param triggerLowerBound: the new lower bound", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "setTriggerLowerBound"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation._simulation.AnalogTriggerSim"}, {"name": "triggerUpperBound", "type": "float"}], "tooltip": "Change the upper bound.\n\n:param triggerUpperBound: the new upper bound", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "setTriggerUpperBound"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.AnalogTriggerSim", "args": [{"name": "analogTrigger", "type": "wpilib.AnalogTrigger"}], "tooltip": "Constructs from an AnalogTrigger object.\n\n:param analogTrigger: AnalogTrigger to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTrigger"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.AnalogTriggerSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Creates an AnalogTriggerSim for an analog input channel.\n\n:param channel: analog input channel\n\n:returns: Simulated object\n @throws std::out_of_range if no AnalogTrigger is configured for that\n channel", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "createForChannel"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.AnalogTriggerSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Creates an AnalogTriggerSim for a simulated index.\nThe index is incremented for each simulated AnalogTrigger.\n\n:param index: simulator index\n\n:returns: Simulated object", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "createForIndex"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation.AnalogTriggerSim"}], "tooltip": "Check if this analog trigger has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation.AnalogTriggerSim"}], "tooltip": "Get the lower bound.\n\n:returns: the lower bound", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "getTriggerLowerBound"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation.AnalogTriggerSim"}], "tooltip": "Get the upper bound.\n\n:returns: the upper bound", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "getTriggerUpperBound"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation.AnalogTriggerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the analog trigger is initialized.\n\n:param callback: the callback that will be called whenever the analog\n trigger is initialized\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation.AnalogTriggerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the lower bound.\n\n:param callback: the callback that will be called whenever the lower bound\n is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "registerTriggerLowerBoundCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation.AnalogTriggerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the upper bound.\n\n:param callback: the callback that will be called whenever the upper bound\n is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "registerTriggerUpperBoundCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation.AnalogTriggerSim"}], "tooltip": "Reset all simulation data for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation.AnalogTriggerSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Change whether this analog trigger has been initialized.\n\n:param initialized: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation.AnalogTriggerSim"}, {"name": "triggerLowerBound", "type": "float"}], "tooltip": "Change the lower bound.\n\n:param triggerLowerBound: the new lower bound", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "setTriggerLowerBound"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "analogTriggerSim", "type": "wpilib.simulation.AnalogTriggerSim"}, {"name": "triggerUpperBound", "type": "float"}], "tooltip": "Change the upper bound.\n\n:param triggerUpperBound: the new upper bound", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.AnalogTriggerSim", "FUNC": "setTriggerUpperBound"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.BatterySim.ts b/src/blocks/generated/class_wpilib.simulation.BatterySim.ts
index 44877a6d..8dc2f150 100644
--- a/src/blocks/generated/class_wpilib.simulation.BatterySim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.BatterySim.ts
@@ -11,9 +11,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 3 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBatterySim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.BatterySim", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BatterySim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.volts", "args": [{"name": "nominalVoltage", "type": "wpimath.units.volts"}, {"name": "resistance", "type": "wpimath.units.ohms"}, {"name": "currents", "type": "List[wpimath.units.amperes]"}], "tooltip": "Calculate the loaded battery voltage. Use this with\nRoboRioSim::SetVInVoltage(double) to set the simulated battery voltage,\nwhich can then be retrieved with the RobotController::GetBatteryVoltage()\nmethod.\n\n:param nominalVoltage: The nominal battery voltage. Usually 12v.\n:param resistance: The forward resistance of the battery. Most batteries\n are at or below 20 milliohms.\n:param currents: The currents drawn from the battery.\n\n:returns: The battery's voltage under load.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BatterySim", "FUNC": "calculate"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myamperes]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.volts", "args": [{"name": "currents", "type": "List[wpimath.units.amperes]"}], "tooltip": "Calculate the loaded battery voltage. Use this with\nRoboRioSimSetVInVoltage(double) to set the simulated battery voltage, which\ncan then be retrieved with the RobotController::GetBatteryVoltage() method.\nThis function assumes a nominal voltage of 12V and a resistance of 20\nmilliohms (0.020 ohms).\n\n:param currents: The currents drawn from the battery.\n\n:returns: The battery's voltage under load.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BatterySim", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myamperes]"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBatterySim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.BatterySim", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BatterySim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.volts", "args": [{"name": "nominalVoltage", "type": "wpimath.units.volts"}, {"name": "resistance", "type": "wpimath.units.ohms"}, {"name": "currents", "type": "List[wpimath.units.amperes]"}], "tooltip": "Calculate the loaded battery voltage. Use this with\nRoboRioSim::SetVInVoltage(double) to set the simulated battery voltage,\nwhich can then be retrieved with the RobotController::GetBatteryVoltage()\nmethod.\n\n:param nominalVoltage: The nominal battery voltage. Usually 12v.\n:param resistance: The forward resistance of the battery. Most batteries\n are at or below 20 milliohms.\n:param currents: The currents drawn from the battery.\n\n:returns: The battery's voltage under load.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BatterySim", "FUNC": "calculate"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.volts", "args": [{"name": "currents", "type": "List[wpimath.units.amperes]"}], "tooltip": "Calculate the loaded battery voltage. Use this with\nRoboRioSimSetVInVoltage(double) to set the simulated battery voltage, which\ncan then be retrieved with the RobotController::GetBatteryVoltage() method.\nThis function assumes a nominal voltage of 12V and a resistance of 20\nmilliohms (0.020 ohms).\n\n:param currents: The currents drawn from the battery.\n\n:returns: The battery's voltage under load.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BatterySim", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.BuiltInAccelerometerSim.ts b/src/blocks/generated/class_wpilib.simulation.BuiltInAccelerometerSim.ts
index e79c3c4b..4134d1ec 100644
--- a/src/blocks/generated/class_wpilib.simulation.BuiltInAccelerometerSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.BuiltInAccelerometerSim.ts
@@ -11,24 +11,24 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 18 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.BuiltInAccelerometerSim", "args": [], "tooltip": "Constructs for the first built-in accelerometer.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.BuiltInAccelerometerSim", "args": [{"name": "accel", "type": "wpilib._wpilib.BuiltInAccelerometer"}], "tooltip": "Constructs from a BuiltInAccelerometer object.\n\n:param accel: BuiltInAccelerometer to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}], "tooltip": "Check whether the accelerometer is active.\n\n:returns: true if active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "getActive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAccelerometerRange"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.AccelerometerRange", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}], "tooltip": "Check the range of this accelerometer.\n\n:returns: the accelerometer range", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "getRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}], "tooltip": "Measure the X axis value.\n\n:returns: the X axis measurement", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}], "tooltip": "Measure the Y axis value.\n\n:returns: the Y axis measurement", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}], "tooltip": "Measure the Z axis value.\n\n:returns: the Z axis measurement", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when this accelerometer activates.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "registerActiveCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the range changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "registerRangeCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the X axis value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "registerXCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Y axis value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "registerYCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Z axis value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "registerZCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}], "tooltip": "Reset all simulation data of this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}, {"name": "active", "type": "bool"}], "tooltip": "Define whether this accelerometer is active.\n\n:param active: the new state", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "setActive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}, {"name": "range", "type": "hal._wpiHal.AccelerometerRange"}], "tooltip": "Change the range of this accelerometer.\n\n:param range: the new accelerometer range", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAccelerometerRange"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}, {"name": "x", "type": "float"}], "tooltip": "Change the X axis value of the accelerometer.\n\n:param x: the new reading of the X axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "setX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}, {"name": "y", "type": "float"}], "tooltip": "Change the Y axis value of the accelerometer.\n\n:param y: the new reading of the Y axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "setY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation._simulation.BuiltInAccelerometerSim"}, {"name": "z", "type": "float"}], "tooltip": "Change the Z axis value of the accelerometer.\n\n:param z: the new reading of the Z axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "setZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.BuiltInAccelerometerSim", "args": [], "tooltip": "Constructs for the first built-in accelerometer.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.BuiltInAccelerometerSim", "args": [{"name": "accel", "type": "wpilib.BuiltInAccelerometer"}], "tooltip": "Constructs from a BuiltInAccelerometer object.\n\n:param accel: BuiltInAccelerometer to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}], "tooltip": "Check whether the accelerometer is active.\n\n:returns: true if active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "getActive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAccelerometerRange"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.AccelerometerRange", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}], "tooltip": "Check the range of this accelerometer.\n\n:returns: the accelerometer range", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "getRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}], "tooltip": "Measure the X axis value.\n\n:returns: the X axis measurement", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}], "tooltip": "Measure the Y axis value.\n\n:returns: the Y axis measurement", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}], "tooltip": "Measure the Z axis value.\n\n:returns: the Z axis measurement", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when this accelerometer activates.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "registerActiveCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the range changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "registerRangeCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the X axis value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "registerXCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Y axis value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "registerYCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Z axis value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "registerZCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}], "tooltip": "Reset all simulation data of this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}, {"name": "active", "type": "bool"}], "tooltip": "Define whether this accelerometer is active.\n\n:param active: the new state", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "setActive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}, {"name": "range", "type": "hal.AccelerometerRange"}], "tooltip": "Change the range of this accelerometer.\n\n:param range: the new accelerometer range", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAccelerometerRange"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}, {"name": "x", "type": "float"}], "tooltip": "Change the X axis value of the accelerometer.\n\n:param x: the new reading of the X axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "setX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}, {"name": "y", "type": "float"}], "tooltip": "Change the Y axis value of the accelerometer.\n\n:param y: the new reading of the Y axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "setY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "builtInAccelerometerSim", "type": "wpilib.simulation.BuiltInAccelerometerSim"}, {"name": "z", "type": "float"}], "tooltip": "Change the Z axis value of the accelerometer.\n\n:param z: the new reading of the Z axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.BuiltInAccelerometerSim", "FUNC": "setZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBuiltInAccelerometerSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.CTREPCMSim.ts b/src/blocks/generated/class_wpilib.simulation.CTREPCMSim.ts
index 6846eb8c..c53beb41 100644
--- a/src/blocks/generated/class_wpilib.simulation.CTREPCMSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.CTREPCMSim.ts
@@ -11,31 +11,31 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 25 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCTREPCMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.CTREPCMSim", "args": [], "tooltip": "Constructs with the default PCM module number (CAN ID).", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCTREPCMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.CTREPCMSim", "args": [{"name": "module", "type": "int"}], "tooltip": "Constructs from a PCM module number (CAN ID).\n\n:param module: module number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCTREPCMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.CTREPCMSim", "args": [{"name": "pneumatics", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getAllSolenoidOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}], "tooltip": "Check whether the closed loop compressor control is active.\n\n:returns: true if active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getClosedLoopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}], "tooltip": "Read the compressor current.\n\n:returns: the current of the compressor connected to this module", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getCompressorOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.PneumaticsBaseSim", "args": [{"name": "module", "type": "int"}, {"name": "type", "type": "wpilib._wpilib.PneumaticsModuleType"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getForType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}], "tooltip": "Check the value of the pressure switch.\n\n:returns: the pressure switch value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getSolenoidOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the closed loop state changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "registerClosedLoopEnabledCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the compressor current changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "registerCompressorCurrentCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "registerCompressorOnCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the pressure switch value changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "registerPressureSwitchCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "channel", "type": "int"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "registerSolenoidOutputCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "outputs", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setAllSolenoidOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "closedLoopEnabled", "type": "bool"}], "tooltip": "Turn on/off the closed loop control of the compressor.\n\n:param closedLoopEnabled: whether the control loop is active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setClosedLoopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "compressorCurrent", "type": "float"}], "tooltip": "Set the compressor current.\n\n:param compressorCurrent: the new compressor current", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "compressorOn", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setCompressorOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "pressureSwitch", "type": "bool"}], "tooltip": "Set the value of the pressure switch.\n\n:param pressureSwitch: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation._simulation.CTREPCMSim"}, {"name": "channel", "type": "int"}, {"name": "solenoidOutput", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setSolenoidOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCTREPCMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.CTREPCMSim", "args": [], "tooltip": "Constructs with the default PCM module number (CAN ID).", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCTREPCMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.CTREPCMSim", "args": [{"name": "module", "type": "int"}], "tooltip": "Constructs from a PCM module number (CAN ID).\n\n:param module: module number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCTREPCMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.CTREPCMSim", "args": [{"name": "pneumatics", "type": "wpilib.PneumaticsBase"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getAllSolenoidOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}], "tooltip": "Check whether the closed loop compressor control is active.\n\n:returns: true if active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getClosedLoopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}], "tooltip": "Read the compressor current.\n\n:returns: the current of the compressor connected to this module", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getCompressorOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.PneumaticsBaseSim", "args": [{"name": "module", "type": "int"}, {"name": "type", "type": "wpilib.PneumaticsModuleType"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getForType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}], "tooltip": "Check the value of the pressure switch.\n\n:returns: the pressure switch value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "getSolenoidOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the closed loop state changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "registerClosedLoopEnabledCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the compressor current changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "registerCompressorCurrentCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "registerCompressorOnCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the pressure switch value changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "registerPressureSwitchCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "channel", "type": "int"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "registerSolenoidOutputCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "outputs", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setAllSolenoidOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "closedLoopEnabled", "type": "bool"}], "tooltip": "Turn on/off the closed loop control of the compressor.\n\n:param closedLoopEnabled: whether the control loop is active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setClosedLoopEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "compressorCurrent", "type": "float"}], "tooltip": "Set the compressor current.\n\n:param compressorCurrent: the new compressor current", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "compressorOn", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setCompressorOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "pressureSwitch", "type": "bool"}], "tooltip": "Set the value of the pressure switch.\n\n:param pressureSwitch: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "cTREPCMSim", "type": "wpilib.simulation.CTREPCMSim"}, {"name": "channel", "type": "int"}, {"name": "solenoidOutput", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CTREPCMSim", "FUNC": "setSolenoidOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCTREPCMSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.CallbackStore.ts b/src/blocks/generated/class_wpilib.simulation.CallbackStore.ts
index 98ee8f61..87d0f0cb 100644
--- a/src/blocks/generated/class_wpilib.simulation.CallbackStore.ts
+++ b/src/blocks/generated/class_wpilib.simulation.CallbackStore.ts
@@ -11,7 +11,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 1 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "callbackStore", "type": "wpilib.simulation._simulation.CallbackStore"}, {"name": "uid", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CallbackStore", "FUNC": "setUid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallbackStore"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "callbackStore", "type": "wpilib.simulation.CallbackStore"}, {"name": "uid", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.CallbackStore", "FUNC": "setUid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallbackStore"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.DCMotorSim.ts b/src/blocks/generated/class_wpilib.simulation.DCMotorSim.ts
index 3b9835bb..6bb175fb 100644
--- a/src/blocks/generated/class_wpilib.simulation.DCMotorSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.DCMotorSim.ts
@@ -11,27 +11,27 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 21 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotorSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DCMotorSim", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "gearbox", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Creates a simulated DC motor mechanism.\n\n:param plant: The linear system representing the DC motor. This\n system can be created with LinearSystemId::DCMotorSystem(). If\n LinearSystemId::DCMotorSystem(kV, kA) is used, the distance unit must be\n radians.\n:param gearbox: The type of and number of motors in the DC motor\n gearbox.\n:param measurementStdDevs: The standard deviation of the measurement noise.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second_squared", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}], "tooltip": "Returns the DC motor acceleration.\n\n:returns: The DC motor acceleration", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getAngularAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}], "tooltip": "Returns the DC motor position.\n\n:returns: The DC motor position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getAngularPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}], "tooltip": "Returns the DC motor velocity.\n\n:returns: The DC motor velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getAngularVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}], "tooltip": "Returns the DC motor current draw.\n\n:returns: The DC motor current draw.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}], "tooltip": "Returns the gearbox.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getGearbox"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}], "tooltip": "Returns the gearing;", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getGearing"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}], "tooltip": "Gets the input voltage for the DC motor.\n\n:returns: The DC motor input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.kilogram_square_meters", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}], "tooltip": "Returns the moment of inertia", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getJ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.newton_meters", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}], "tooltip": "Returns the DC motor torque.\n\n:returns: The DC motor torque", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getTorque"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}, {"name": "angularPosition", "type": "wpimath.units.radians"}], "tooltip": "Sets the DC motor's angular position.\n\n:param angularPosition: The new position in radians.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "setAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}, {"name": "angularVelocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Sets the DC motor's angular velocity.\n\n:param angularVelocity: The new velocity in radians per second.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "setAngularVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}, {"name": "voltage", "type": "wpimath.units.volts"}], "tooltip": "Sets the input voltage for the DC motor.\n\n:param voltage: The input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "setInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation._simulation.DCMotorSim"}, {"name": "angularPosition", "type": "wpimath.units.radians"}, {"name": "angularVelocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Sets the state of the DC motor.\n\n:param angularPosition: The new position\n:param angularVelocity: The new velocity", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotorSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DCMotorSim", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "gearbox", "type": "wpimath.system.plant.DCMotor"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Creates a simulated DC motor mechanism.\n\n:param plant: The linear system representing the DC motor. This\n system can be created with LinearSystemId::DCMotorSystem(). If\n LinearSystemId::DCMotorSystem(kV, kA) is used, the distance unit must be\n radians.\n:param gearbox: The type of and number of motors in the DC motor\n gearbox.\n:param measurementStdDevs: The standard deviation of the measurement noise.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second_squared", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}], "tooltip": "Returns the DC motor acceleration.\n\n:returns: The DC motor acceleration", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getAngularAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}], "tooltip": "Returns the DC motor position.\n\n:returns: The DC motor position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getAngularPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}], "tooltip": "Returns the DC motor velocity.\n\n:returns: The DC motor velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getAngularVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}], "tooltip": "Returns the DC motor current draw.\n\n:returns: The DC motor current draw.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}], "tooltip": "Returns the gearbox.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getGearbox"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}], "tooltip": "Returns the gearing;", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getGearing"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}], "tooltip": "Gets the input voltage for the DC motor.\n\n:returns: The DC motor input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.kilogram_square_meters", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}], "tooltip": "Returns the moment of inertia", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getJ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.newton_meters", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}], "tooltip": "Returns the DC motor torque.\n\n:returns: The DC motor torque", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "getTorque"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}, {"name": "angularPosition", "type": "wpimath.units.radians"}], "tooltip": "Sets the DC motor's angular position.\n\n:param angularPosition: The new position in radians.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "setAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}, {"name": "angularVelocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Sets the DC motor's angular velocity.\n\n:param angularVelocity: The new velocity in radians per second.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "setAngularVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}, {"name": "voltage", "type": "wpimath.units.volts"}], "tooltip": "Sets the input voltage for the DC motor.\n\n:param voltage: The input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "setInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dCMotorSim", "type": "wpilib.simulation.DCMotorSim"}, {"name": "angularPosition", "type": "wpimath.units.radians"}, {"name": "angularVelocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Sets the state of the DC motor.\n\n:param angularPosition: The new position\n:param angularVelocity: The new velocity", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DCMotorSim", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.DIOSim.ts b/src/blocks/generated/class_wpilib.simulation.DIOSim.ts
index 1d197ad1..250bb2ed 100644
--- a/src/blocks/generated/class_wpilib.simulation.DIOSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.DIOSim.ts
@@ -11,25 +11,25 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 19 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDIOSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DIOSim", "args": [{"name": "input", "type": "wpilib._wpilib.DigitalInput"}], "tooltip": "Constructs from a DigitalInput object.\n\n:param input: DigitalInput to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDIOSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DIOSim", "args": [{"name": "output", "type": "wpilib._wpilib.DigitalOutput"}], "tooltip": "Constructs from a DigitalOutput object.\n\n:param output: DigitalOutput to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDIOSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DIOSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from an digital I/O channel number.\n\n:param channel: Channel number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}], "tooltip": "Read the filter index.\n\n:returns: the filter index of this DIO port", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "getFilterIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}], "tooltip": "Check whether this DIO has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}], "tooltip": "Check whether this DIO port is currently an Input.\n\n:returns: true if Input", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "getIsInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}], "tooltip": "Read the pulse length.\n\n:returns: the pulse length of this DIO port", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "getPulseLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}], "tooltip": "Read the value of the DIO port.\n\n:returns: the DIO value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "getValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the filter index changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "registerFilterIndexCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when this DIO is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever this DIO changes to be an input.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "registerIsInputCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the pulse length changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "registerPulseLengthCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the DIO value changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "registerValueCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}], "tooltip": "Reset all simulation data of this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}, {"name": "filterIndex", "type": "int"}], "tooltip": "Change the filter index of this DIO port.\n\n:param filterIndex: the new filter index", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "setFilterIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether this DIO has been initialized.\n\n:param initialized: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}, {"name": "isInput", "type": "bool"}], "tooltip": "Define whether this DIO port is an Input.\n\n:param isInput: whether this DIO should be an Input", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "setIsInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}, {"name": "pulseLength", "type": "float"}], "tooltip": "Change the pulse length of this DIO port.\n\n:param pulseLength: the new pulse length", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "setPulseLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dIOSim", "type": "wpilib.simulation._simulation.DIOSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the DIO value.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "setValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDIOSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DIOSim", "args": [{"name": "input", "type": "wpilib.DigitalInput"}], "tooltip": "Constructs from a DigitalInput object.\n\n:param input: DigitalInput to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalInput"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDIOSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DIOSim", "args": [{"name": "output", "type": "wpilib.DigitalOutput"}], "tooltip": "Constructs from a DigitalOutput object.\n\n:param output: DigitalOutput to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDIOSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DIOSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from an digital I/O channel number.\n\n:param channel: Channel number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}], "tooltip": "Read the filter index.\n\n:returns: the filter index of this DIO port", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "getFilterIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}], "tooltip": "Check whether this DIO has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}], "tooltip": "Check whether this DIO port is currently an Input.\n\n:returns: true if Input", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "getIsInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}], "tooltip": "Read the pulse length.\n\n:returns: the pulse length of this DIO port", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "getPulseLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}], "tooltip": "Read the value of the DIO port.\n\n:returns: the DIO value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "getValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the filter index changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "registerFilterIndexCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when this DIO is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever this DIO changes to be an input.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "registerIsInputCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the pulse length changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "registerPulseLengthCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the DIO value changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "registerValueCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}], "tooltip": "Reset all simulation data of this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}, {"name": "filterIndex", "type": "int"}], "tooltip": "Change the filter index of this DIO port.\n\n:param filterIndex: the new filter index", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "setFilterIndex"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether this DIO has been initialized.\n\n:param initialized: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}, {"name": "isInput", "type": "bool"}], "tooltip": "Define whether this DIO port is an Input.\n\n:param isInput: whether this DIO should be an Input", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "setIsInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}, {"name": "pulseLength", "type": "float"}], "tooltip": "Change the pulse length of this DIO port.\n\n:param pulseLength: the new pulse length", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "setPulseLength"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dIOSim", "type": "wpilib.simulation.DIOSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the DIO value.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DIOSim", "FUNC": "setValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDIOSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing.ts b/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing.ts
index 0bb1cf3f..9b537bf3 100644
--- a/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing.ts
+++ b/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing.ts
@@ -25,7 +25,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing", "varType": "float", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing", "VAR": "k7p31"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing", "varType": "float", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing", "VAR": "k8p45"}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing", "varType": "float", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing", "VAR": "k8p45"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKitbotGearing"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DifferentialDrivetrainSim.KitbotGearing", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKitbotGearing"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotGearing"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor.ts b/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor.ts
index 786e89fd..cc80e7ec 100644
--- a/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor.ts
+++ b/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor.ts
@@ -31,7 +31,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor", "varType": "wpimath.system.plant.DCMotor", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor", "VAR": "SingleMiniCIMPerSide"}, "inputs": {"VALUE": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor", "varType": "wpimath.system.plant.DCMotor", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor", "VAR": "SingleNEOPerSide"}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor", "varType": "wpimath.system.plant.DCMotor", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor", "VAR": "SingleNEOPerSide"}, "inputs": {"VALUE": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKitbotMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DifferentialDrivetrainSim.KitbotMotor", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKitbotMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotMotor"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize.ts b/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize.ts
index 8d97e021..2642772a 100644
--- a/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize.ts
+++ b/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize.ts
@@ -16,7 +16,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize", "varType": "float", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize", "VAR": "kEightInch"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize", "varType": "float", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize", "VAR": "kSixInch"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize", "varType": "float", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize", "VAR": "kTenInch"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKitbotWheelSize"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DifferentialDrivetrainSim.KitbotWheelSize", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKitbotWheelSize"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.KitbotWheelSize"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.State.ts b/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.State.ts
index b8e4965c..5fc4ded5 100644
--- a/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.State.ts
+++ b/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.State.ts
@@ -20,7 +20,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.simulation.DifferentialDrivetrainSim.State", "varType": "int", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.State", "VAR": "kRightVelocity"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.simulation.DifferentialDrivetrainSim.State", "varType": "int", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.State", "VAR": "kX"}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "class", "moduleOrClassName": "wpilib.simulation.DifferentialDrivetrainSim.State", "varType": "int", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.State", "VAR": "kY"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DifferentialDrivetrainSim.State", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.State"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DifferentialDrivetrainSim.State", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim.State"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.ts b/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.ts
index f6e2c6fa..7770e22c 100644
--- a/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.DifferentialDrivetrainSim.ts
@@ -11,33 +11,33 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 27 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DifferentialDrivetrainSim", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "trackWidth", "type": "wpimath.units.meters"}, {"name": "driveMotor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "gearingRatio", "type": "float"}, {"name": "wheelRadius", "type": "wpimath.units.meters"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(7)]"}], "tooltip": "Creates a simulated differential drivetrain.\n\n:param plant: The LinearSystem representing the robot's drivetrain. This\n system can be created with\n LinearSystemId::DrivetrainVelocitySystem() or\n LinearSystemId::IdentifyDrivetrainSystem().\n:param trackWidth: The robot's track width.\n:param driveMotor: A DCMotor representing the left side of the drivetrain.\n:param gearingRatio: The gearingRatio ratio of the left side, as output over\n input. This must be the same ratio as the ratio used to\n identify or create the plant.\n:param wheelRadius: The radius of the wheels on the drivetrain, in meters.\n:param measurementStdDevs: Standard deviations for measurements, in the form\n [x, y, heading, left velocity, right velocity,\n left distance, right distance]\u1d40. Can be omitted\n if no noise is desired. Gyro standard deviations\n of 0.0001 radians, velocity standard deviations\n of 0.05 m/s, and position measurement standard\n deviations of 0.005 meters are a reasonable\n starting point.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DifferentialDrivetrainSim", "args": [{"name": "driveMotor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "gearing", "type": "float"}, {"name": "J", "type": "wpimath.units.kilogram_square_meters"}, {"name": "mass", "type": "wpimath.units.kilograms"}, {"name": "wheelRadius", "type": "wpimath.units.meters"}, {"name": "trackWidth", "type": "wpimath.units.meters"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(7)]"}], "tooltip": "Creates a simulated differential drivetrain.\n\n:param driveMotor: A DCMotor representing the left side of the drivetrain.\n:param gearing: The gearing on the drive between motor and wheel, as\n output over input. This must be the same ratio as the\n ratio used to identify or create the plant.\n:param J: The moment of inertia of the drivetrain about its\n center.\n:param mass: The mass of the drivebase.\n:param wheelRadius: The radius of the wheels on the drivetrain.\n:param trackWidth: The robot's track width, or distance between left and\n right wheels.\n:param measurementStdDevs: Standard deviations for measurements, in the form\n [x, y, heading, left velocity, right velocity,\n left distance, right distance]\u1d40. Can be omitted\n if no noise is desired. Gyro standard deviations\n of 0.0001 radians, velocity standard deviations\n of 0.05 m/s, and position measurement standard\n deviations of 0.005 meters are a reasonable\n starting point.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Clamp the input vector such that no element exceeds the battery voltage.\nIf any does, the relative magnitudes of the input will be maintained.\n\n:param u: The input vector.\n\n:returns: The normalized input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "clampInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.DifferentialDrivetrainSim", "args": [{"name": "motor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "gearing", "type": "float"}, {"name": "wheelSize", "type": "wpimath.units.meters"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(7)]"}], "tooltip": "Create a sim for the standard FRC kitbot.\n\n:param motor: The motors installed in the bot.\n:param gearing: The gearing reduction used.\n:param wheelSize: The wheel size.\n:param measurementStdDevs: Standard deviations for measurements, in the form\n [x, y, heading, left velocity, right velocity, left distance, right\n distance]\u1d40. Can be omitted if no noise is desired. Gyro standard\n deviations of 0.0001 radians, velocity standard deviations of 0.05 m/s, and\n position measurement standard deviations of 0.005 meters are a reasonable\n starting point.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "createKitbotSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.DifferentialDrivetrainSim", "args": [{"name": "motor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "gearing", "type": "float"}, {"name": "wheelSize", "type": "wpimath.units.meters"}, {"name": "J", "type": "wpimath.units.kilogram_square_meters"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(7)]"}], "tooltip": "Create a sim for the standard FRC kitbot.\n\n:param motor: The motors installed in the bot.\n:param gearing: The gearing reduction used.\n:param wheelSize: The wheel size.\n:param J: The moment of inertia of the drivebase. This can be\n calculated using SysId.\n:param measurementStdDevs: Standard deviations for measurements, in the form\n [x, y, heading, left velocity, right velocity, left distance, right\n distance]\u1d40. Can be omitted if no noise is desired. Gyro standard\n deviations of 0.0001 radians, velocity standard deviations of 0.05 m/s, and\n position measurement standard deviations of 0.005 meters are a reasonable\n starting point.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "createKitbotSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[7, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[7, 1]]", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[7, 1]]"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "The differential drive dynamics function.\n\n:param x: The state.\n:param u: The input.\n\n:returns: The state derivative with respect to time.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "dynamics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[7, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "Returns the currently drawn current.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "Returns the current gearing reduction of the drivetrain, as output over\ninput.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getGearing"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "Returns the direction the robot is pointing.\n\nNote that this angle is counterclockwise-positive, while most gyros are\nclockwise positive.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getHeading"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "Returns the currently drawn current for the left side.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getLeftCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "Get the left encoder position in meters.\n\n:returns: The encoder position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getLeftPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getLeftPositionFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.inches", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getLeftPositionInches"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "Get the left encoder velocity in meters per second.\n\n:returns: The encoder velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getLeftVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet_per_second", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getLeftVelocityFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "Returns the current pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "Returns the currently drawn current for the right side.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getRightCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "Get the right encoder position in meters.\n\n:returns: The encoder position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getRightPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getRightPositionFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.inches", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getRightPositionInches"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "Get the right encoder velocity in meters per second.\n\n:returns: The encoder velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getRightVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet_per_second", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getRightVelocityFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}, {"name": "newGearing", "type": "float"}], "tooltip": "Sets the gearing reduction on the drivetrain. This is commonly used for\nshifting drivetrains.\n\n:param newGearing: The new gear ratio, as output over input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "setGearing"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}, {"name": "leftVoltage", "type": "wpimath.units.volts"}, {"name": "rightVoltage", "type": "wpimath.units.volts"}], "tooltip": "Sets the applied voltage to the drivetrain. Note that positive voltage must\nmake that side of the drivetrain travel forward (+X).\n\n:param leftVoltage: The left voltage.\n:param rightVoltage: The right voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "setInputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Sets the system pose.\n\n:param pose: The pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "setPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[7, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[7, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation._simulation.DifferentialDrivetrainSim"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time that's passed since the last Update(units::second_t)\n call.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DifferentialDrivetrainSim", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "trackWidth", "type": "wpimath.units.meters"}, {"name": "driveMotor", "type": "wpimath.system.plant.DCMotor"}, {"name": "gearingRatio", "type": "float"}, {"name": "wheelRadius", "type": "wpimath.units.meters"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(7)]"}], "tooltip": "Creates a simulated differential drivetrain.\n\n:param plant: The LinearSystem representing the robot's drivetrain. This\n system can be created with\n LinearSystemId::DrivetrainVelocitySystem() or\n LinearSystemId::IdentifyDrivetrainSystem().\n:param trackWidth: The robot's track width.\n:param driveMotor: A DCMotor representing the left side of the drivetrain.\n:param gearingRatio: The gearingRatio ratio of the left side, as output over\n input. This must be the same ratio as the ratio used to\n identify or create the plant.\n:param wheelRadius: The radius of the wheels on the drivetrain, in meters.\n:param measurementStdDevs: Standard deviations for measurements, in the form\n [x, y, heading, left velocity, right velocity,\n left distance, right distance]\u1d40. Can be omitted\n if no noise is desired. Gyro standard deviations\n of 0.0001 radians, velocity standard deviations\n of 0.05 m/s, and position measurement standard\n deviations of 0.005 meters are a reasonable\n starting point.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DifferentialDrivetrainSim", "args": [{"name": "driveMotor", "type": "wpimath.system.plant.DCMotor"}, {"name": "gearing", "type": "float"}, {"name": "J", "type": "wpimath.units.kilogram_square_meters"}, {"name": "mass", "type": "wpimath.units.kilograms"}, {"name": "wheelRadius", "type": "wpimath.units.meters"}, {"name": "trackWidth", "type": "wpimath.units.meters"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(7)]"}], "tooltip": "Creates a simulated differential drivetrain.\n\n:param driveMotor: A DCMotor representing the left side of the drivetrain.\n:param gearing: The gearing on the drive between motor and wheel, as\n output over input. This must be the same ratio as the\n ratio used to identify or create the plant.\n:param J: The moment of inertia of the drivetrain about its\n center.\n:param mass: The mass of the drivebase.\n:param wheelRadius: The radius of the wheels on the drivetrain.\n:param trackWidth: The robot's track width, or distance between left and\n right wheels.\n:param measurementStdDevs: Standard deviations for measurements, in the form\n [x, y, heading, left velocity, right velocity,\n left distance, right distance]\u1d40. Can be omitted\n if no noise is desired. Gyro standard deviations\n of 0.0001 radians, velocity standard deviations\n of 0.05 m/s, and position measurement standard\n deviations of 0.005 meters are a reasonable\n starting point.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Clamp the input vector such that no element exceeds the battery voltage.\nIf any does, the relative magnitudes of the input will be maintained.\n\n:param u: The input vector.\n\n:returns: The normalized input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "clampInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.DifferentialDrivetrainSim", "args": [{"name": "motor", "type": "wpimath.system.plant.DCMotor"}, {"name": "gearing", "type": "float"}, {"name": "wheelSize", "type": "wpimath.units.meters"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(7)]"}], "tooltip": "Create a sim for the standard FRC kitbot.\n\n:param motor: The motors installed in the bot.\n:param gearing: The gearing reduction used.\n:param wheelSize: The wheel size.\n:param measurementStdDevs: Standard deviations for measurements, in the form\n [x, y, heading, left velocity, right velocity, left distance, right\n distance]\u1d40. Can be omitted if no noise is desired. Gyro standard\n deviations of 0.0001 radians, velocity standard deviations of 0.05 m/s, and\n position measurement standard deviations of 0.005 meters are a reasonable\n starting point.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "createKitbotSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.DifferentialDrivetrainSim", "args": [{"name": "motor", "type": "wpimath.system.plant.DCMotor"}, {"name": "gearing", "type": "float"}, {"name": "wheelSize", "type": "wpimath.units.meters"}, {"name": "J", "type": "wpimath.units.kilogram_square_meters"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(7)]"}], "tooltip": "Create a sim for the standard FRC kitbot.\n\n:param motor: The motors installed in the bot.\n:param gearing: The gearing reduction used.\n:param wheelSize: The wheel size.\n:param J: The moment of inertia of the drivebase. This can be\n calculated using SysId.\n:param measurementStdDevs: Standard deviations for measurements, in the form\n [x, y, heading, left velocity, right velocity, left distance, right\n distance]\u1d40. Can be omitted if no noise is desired. Gyro standard\n deviations of 0.0001 radians, velocity standard deviations of 0.05 m/s, and\n position measurement standard deviations of 0.005 meters are a reasonable\n starting point.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "createKitbotSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[7, 1]]", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[7, 1]]"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "The differential drive dynamics function.\n\n:param x: The state.\n:param u: The input.\n\n:returns: The state derivative with respect to time.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "dynamics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "Returns the currently drawn current.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "Returns the current gearing reduction of the drivetrain, as output over\ninput.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getGearing"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "Returns the direction the robot is pointing.\n\nNote that this angle is counterclockwise-positive, while most gyros are\nclockwise positive.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getHeading"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "Returns the currently drawn current for the left side.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getLeftCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "Get the left encoder position in meters.\n\n:returns: The encoder position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getLeftPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getLeftPositionFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.inches", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getLeftPositionInches"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "Get the left encoder velocity in meters per second.\n\n:returns: The encoder velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getLeftVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet_per_second", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getLeftVelocityFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "Returns the current pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "Returns the currently drawn current for the right side.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getRightCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "Get the right encoder position in meters.\n\n:returns: The encoder position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getRightPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getRightPositionFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.inches", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getRightPositionInches"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "Get the right encoder velocity in meters per second.\n\n:returns: The encoder velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getRightVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet_per_second", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "getRightVelocityFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}, {"name": "newGearing", "type": "float"}], "tooltip": "Sets the gearing reduction on the drivetrain. This is commonly used for\nshifting drivetrains.\n\n:param newGearing: The new gear ratio, as output over input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "setGearing"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}, {"name": "leftVoltage", "type": "wpimath.units.volts"}, {"name": "rightVoltage", "type": "wpimath.units.volts"}], "tooltip": "Sets the applied voltage to the drivetrain. Note that positive voltage must\nmake that side of the drivetrain travel forward (+X).\n\n:param leftVoltage: The left voltage.\n:param rightVoltage: The right voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "setInputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Sets the system pose.\n\n:param pose: The pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "setPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[7, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivetrainSim", "type": "wpilib.simulation.DifferentialDrivetrainSim"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time that's passed since the last Update(units::second_t)\n call.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DifferentialDrivetrainSim", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivetrainSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.DigitalPWMSim.ts b/src/blocks/generated/class_wpilib.simulation.DigitalPWMSim.ts
index 842ac5f8..b9d607c5 100644
--- a/src/blocks/generated/class_wpilib.simulation.DigitalPWMSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.DigitalPWMSim.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalPWMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DigitalPWMSim", "args": [{"name": "digitalOutput", "type": "wpilib._wpilib.DigitalOutput"}], "tooltip": "Constructs from a DigitalOutput object.\n\n:param digitalOutput: DigitalOutput to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalPWMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.DigitalPWMSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Creates an DigitalPWMSim for a digital I/O channel.\n\n:param channel: DIO channel\n\n:returns: Simulated object\n @throws std::out_of_range if no Digital PWM is configured for that channel", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "createForChannel"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalPWMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.DigitalPWMSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Creates an DigitalPWMSim for a simulated index.\nThe index is incremented for each simulated DigitalPWM.\n\n:param index: simulator index\n\n:returns: Simulated object", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "createForIndex"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation._simulation.DigitalPWMSim"}], "tooltip": "Read the duty cycle value.\n\n:returns: the duty cycle value of this PWM output", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "getDutyCycle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation._simulation.DigitalPWMSim"}], "tooltip": "Check whether this PWM output has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation._simulation.DigitalPWMSim"}], "tooltip": "Check the pin number.\n\n:returns: the pin number", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "getPin"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation._simulation.DigitalPWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the duty cycle value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "registerDutyCycleCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation._simulation.DigitalPWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when this PWM output is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation._simulation.DigitalPWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the pin changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "registerPinCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation._simulation.DigitalPWMSim"}], "tooltip": "Reset all simulation data.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation._simulation.DigitalPWMSim"}, {"name": "dutyCycle", "type": "float"}], "tooltip": "Set the duty cycle value of this PWM output.\n\n:param dutyCycle: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "setDutyCycle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation._simulation.DigitalPWMSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether this PWM output has been initialized.\n\n:param initialized: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation._simulation.DigitalPWMSim"}, {"name": "pin", "type": "int"}], "tooltip": "Change the pin number.\n\n:param pin: the new pin number", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "setPin"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalPWMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DigitalPWMSim", "args": [{"name": "digitalOutput", "type": "wpilib.DigitalOutput"}], "tooltip": "Constructs from a DigitalOutput object.\n\n:param digitalOutput: DigitalOutput to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalOutput"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalPWMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.DigitalPWMSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Creates an DigitalPWMSim for a digital I/O channel.\n\n:param channel: DIO channel\n\n:returns: Simulated object\n @throws std::out_of_range if no Digital PWM is configured for that channel", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "createForChannel"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDigitalPWMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.DigitalPWMSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Creates an DigitalPWMSim for a simulated index.\nThe index is incremented for each simulated DigitalPWM.\n\n:param index: simulator index\n\n:returns: Simulated object", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "createForIndex"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation.DigitalPWMSim"}], "tooltip": "Read the duty cycle value.\n\n:returns: the duty cycle value of this PWM output", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "getDutyCycle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation.DigitalPWMSim"}], "tooltip": "Check whether this PWM output has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation.DigitalPWMSim"}], "tooltip": "Check the pin number.\n\n:returns: the pin number", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "getPin"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation.DigitalPWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the duty cycle value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "registerDutyCycleCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation.DigitalPWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when this PWM output is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation.DigitalPWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the pin changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "registerPinCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation.DigitalPWMSim"}], "tooltip": "Reset all simulation data.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation.DigitalPWMSim"}, {"name": "dutyCycle", "type": "float"}], "tooltip": "Set the duty cycle value of this PWM output.\n\n:param dutyCycle: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "setDutyCycle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation.DigitalPWMSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether this PWM output has been initialized.\n\n:param initialized: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "digitalPWMSim", "type": "wpilib.simulation.DigitalPWMSim"}, {"name": "pin", "type": "int"}], "tooltip": "Change the pin number.\n\n:param pin: the new pin number", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DigitalPWMSim", "FUNC": "setPin"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDigitalPWMSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.DoubleSolenoidSim.ts b/src/blocks/generated/class_wpilib.simulation.DoubleSolenoidSim.ts
index f2a2f978..074bd1cf 100644
--- a/src/blocks/generated/class_wpilib.simulation.DoubleSolenoidSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.DoubleSolenoidSim.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoidSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DoubleSolenoidSim", "args": [{"name": "moduleSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "fwd", "type": "int"}, {"name": "rev", "type": "int"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DoubleSolenoidSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoidSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DoubleSolenoidSim", "args": [{"name": "module", "type": "int"}, {"name": "type", "type": "wpilib._wpilib.PneumaticsModuleType"}, {"name": "fwd", "type": "int"}, {"name": "rev", "type": "int"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DoubleSolenoidSim"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoidSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DoubleSolenoidSim", "args": [{"name": "type", "type": "wpilib._wpilib.PneumaticsModuleType"}, {"name": "fwd", "type": "int"}, {"name": "rev", "type": "int"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DoubleSolenoidSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myValue"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.DoubleSolenoid.Value", "args": [{"name": "doubleSolenoidSim", "type": "wpilib.simulation._simulation.DoubleSolenoidSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DoubleSolenoidSim", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoidSim"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.PneumaticsBaseSim", "args": [{"name": "doubleSolenoidSim", "type": "wpilib.simulation._simulation.DoubleSolenoidSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DoubleSolenoidSim", "FUNC": "getModuleSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoidSim"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "doubleSolenoidSim", "type": "wpilib.simulation._simulation.DoubleSolenoidSim"}, {"name": "output", "type": "wpilib._wpilib.DoubleSolenoid.Value"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DoubleSolenoidSim", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoidSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoidSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DoubleSolenoidSim", "args": [{"name": "moduleSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "fwd", "type": "int"}, {"name": "rev", "type": "int"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DoubleSolenoidSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoidSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DoubleSolenoidSim", "args": [{"name": "module", "type": "int"}, {"name": "type", "type": "wpilib.PneumaticsModuleType"}, {"name": "fwd", "type": "int"}, {"name": "rev", "type": "int"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DoubleSolenoidSim"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDoubleSolenoidSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DoubleSolenoidSim", "args": [{"name": "type", "type": "wpilib.PneumaticsModuleType"}, {"name": "fwd", "type": "int"}, {"name": "rev", "type": "int"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DoubleSolenoidSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myValue"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.DoubleSolenoid.Value", "args": [{"name": "doubleSolenoidSim", "type": "wpilib.simulation.DoubleSolenoidSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DoubleSolenoidSim", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoidSim"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.PneumaticsBaseSim", "args": [{"name": "doubleSolenoidSim", "type": "wpilib.simulation.DoubleSolenoidSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DoubleSolenoidSim", "FUNC": "getModuleSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoidSim"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "doubleSolenoidSim", "type": "wpilib.simulation.DoubleSolenoidSim"}, {"name": "output", "type": "wpilib.DoubleSolenoid.Value"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DoubleSolenoidSim", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDoubleSolenoidSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.DriverStationSim.ts b/src/blocks/generated/class_wpilib.simulation.DriverStationSim.ts
index f1434858..7948c6cc 100644
--- a/src/blocks/generated/class_wpilib.simulation.DriverStationSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.DriverStationSim.ts
@@ -11,8 +11,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 47 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDriverStationSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DriverStationSim", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllianceStationID"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "hal._wpiHal.AllianceStationID", "args": [], "tooltip": "Get the alliance station ID (color + number).\n\n:returns: the alliance station color and number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "getAllianceStationId"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDriverStationSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DriverStationSim", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllianceStationID"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "hal.AllianceStationID", "args": [], "tooltip": "Get the alliance station ID (color + number).\n\n:returns: the alliance station color and number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "getAllianceStationId"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Check if the DS is in autonomous.\n\n:returns: true if autonomous", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "getAutonomous"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Check if the DS is attached.\n\n:returns: true if attached", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "getDsAttached"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Check if eStop has been activated.\n\n:returns: true if eStopped", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "getEStop"}},
@@ -23,16 +23,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "float", "args": [], "tooltip": "Get the current value of the match timer.\n\n:returns: the current match time", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "getMatchTime"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Check if the DS is in test.\n\n:returns: true if test", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "getTest"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Updates DriverStation data so that new values are visible to the user\nprogram.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "notifyNewData"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the alliance station ID.\n\n:param callback: the callback that will be called whenever the alliance\n station changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerAllianceStationIdCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the DS is in autonomous mode.\n\n:param callback: the callback that will be called on autonomous mode\n entrance/exit\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerAutonomousCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the DS is connected.\n\n:param callback: the callback that will be called whenever the DS\n connection changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerDsAttachedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the eStop state.\n\n:param callback: the callback that will be called whenever the eStop state\n changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerEStopCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the DS is enabled.\n\n:param callback: the callback that will be called whenever the enabled\n state is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerEnabledCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the FMS is connected.\n\n:param callback: the callback that will be called whenever the FMS\n connection changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerFmsAttachedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on match time.\n\n:param callback: the callback that will be called whenever match time\n changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerMatchTimeCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the DS is in test mode.\n\n:param callback: the callback that will be called whenever the test mode\n is entered or left\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerTestCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the alliance station ID.\n\n:param callback: the callback that will be called whenever the alliance\n station changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerAllianceStationIdCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the DS is in autonomous mode.\n\n:param callback: the callback that will be called on autonomous mode\n entrance/exit\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerAutonomousCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the DS is connected.\n\n:param callback: the callback that will be called whenever the DS\n connection changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerDsAttachedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the eStop state.\n\n:param callback: the callback that will be called whenever the eStop state\n changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerEStopCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the DS is enabled.\n\n:param callback: the callback that will be called whenever the enabled\n state is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerEnabledCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the FMS is connected.\n\n:param callback: the callback that will be called whenever the FMS\n connection changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerFmsAttachedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on match time.\n\n:param callback: the callback that will be called whenever match time\n changes\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerMatchTimeCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on whether the DS is in test mode.\n\n:param callback: the callback that will be called whenever the test mode\n is entered or left\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "registerTestCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Reset all simulation data for the Driver Station.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "resetData"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "allianceStationId", "type": "hal._wpiHal.AllianceStationID"}], "tooltip": "Change the alliance station.\n\n:param allianceStationId: the new alliance station", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setAllianceStationId"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllianceStationID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "allianceStationId", "type": "hal.AllianceStationID"}], "tooltip": "Change the alliance station.\n\n:param allianceStationId: the new alliance station", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setAllianceStationId"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllianceStationID"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "autonomous", "type": "bool"}], "tooltip": "Change whether the DS is in autonomous.\n\n:param autonomous: the new value", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setAutonomous"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "dsAttached", "type": "bool"}], "tooltip": "Change whether the DS is attached.\n\n:param dsAttached: the new value", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setDsAttached"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "eStop", "type": "bool"}], "tooltip": "Set whether eStop is active.\n\n:param eStop: true to activate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setEStop"}},
@@ -53,7 +53,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "stick", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Sets the value of type for a joystick.\n\n:param stick: The joystick number\n:param type: The value of type", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setJoystickType"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "matchNumber", "type": "int"}], "tooltip": "Sets the match number.\n\n:param matchNumber: the match number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setMatchNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "matchTime", "type": "float"}], "tooltip": "Sets the match timer.\n\n:param matchTime: the new match time", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setMatchTime"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "type", "type": "wpilib._wpilib.DriverStation.MatchType"}], "tooltip": "Sets the match type.\n\n:param type: the match type", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setMatchType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "type", "type": "wpilib.DriverStation.MatchType"}], "tooltip": "Sets the match type.\n\n:param type: the match type", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setMatchType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchType"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "replayNumber", "type": "int"}], "tooltip": "Sets the replay number.\n\n:param replayNumber: the replay number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setReplayNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "shouldSend", "type": "bool"}], "tooltip": "Sets suppression of DriverStation::SendConsoleLine messages.\n\n:param shouldSend: If false then messages will be suppressed.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setSendConsoleLine"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "shouldSend", "type": "bool"}], "tooltip": "Sets suppression of DriverStation::ReportError and ReportWarning messages.\n\n:param shouldSend: If false then messages will be suppressed.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DriverStationSim", "FUNC": "setSendError"}},
diff --git a/src/blocks/generated/class_wpilib.simulation.DutyCycleEncoderSim.ts b/src/blocks/generated/class_wpilib.simulation.DutyCycleEncoderSim.ts
index c337f1ff..ed9674a5 100644
--- a/src/blocks/generated/class_wpilib.simulation.DutyCycleEncoderSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.DutyCycleEncoderSim.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoderSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DutyCycleEncoderSim", "args": [{"name": "encoder", "type": "wpilib._wpilib.DutyCycleEncoder"}], "tooltip": "Constructs from a DutyCycleEncoder object.\n\n:param encoder: DutyCycleEncoder to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleEncoderSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoderSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DutyCycleEncoderSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from a digital input channel.\n\n:param channel: digital input channel", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleEncoderSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "dutyCycleEncoderSim", "type": "wpilib.simulation._simulation.DutyCycleEncoderSim"}], "tooltip": "Get the position.\n\n:returns: The position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleEncoderSim", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dutyCycleEncoderSim", "type": "wpilib.simulation._simulation.DutyCycleEncoderSim"}], "tooltip": "Get if the encoder is connected.\n\n:returns: true if the encoder is connected.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleEncoderSim", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoderSim", "type": "wpilib.simulation._simulation.DutyCycleEncoderSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the position.\n\n:param value: The position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleEncoderSim", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoderSim", "type": "wpilib.simulation._simulation.DutyCycleEncoderSim"}, {"name": "isConnected", "type": "bool"}], "tooltip": "Set if the encoder is connected.\n\n:param isConnected: Whether or not the sensor is connected.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleEncoderSim", "FUNC": "setConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoderSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoderSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DutyCycleEncoderSim", "args": [{"name": "encoder", "type": "wpilib.DutyCycleEncoder"}], "tooltip": "Constructs from a DutyCycleEncoder object.\n\n:param encoder: DutyCycleEncoder to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleEncoderSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoder"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleEncoderSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DutyCycleEncoderSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from a digital input channel.\n\n:param channel: digital input channel", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleEncoderSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "dutyCycleEncoderSim", "type": "wpilib.simulation.DutyCycleEncoderSim"}], "tooltip": "Get the position.\n\n:returns: The position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleEncoderSim", "FUNC": "get"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dutyCycleEncoderSim", "type": "wpilib.simulation.DutyCycleEncoderSim"}], "tooltip": "Get if the encoder is connected.\n\n:returns: true if the encoder is connected.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleEncoderSim", "FUNC": "isConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoderSim", "type": "wpilib.simulation.DutyCycleEncoderSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the position.\n\n:param value: The position.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleEncoderSim", "FUNC": "set"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleEncoderSim", "type": "wpilib.simulation.DutyCycleEncoderSim"}, {"name": "isConnected", "type": "bool"}], "tooltip": "Set if the encoder is connected.\n\n:param isConnected: Whether or not the sensor is connected.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleEncoderSim", "FUNC": "setConnected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleEncoderSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.DutyCycleSim.ts b/src/blocks/generated/class_wpilib.simulation.DutyCycleSim.ts
index 993133b7..e40cc0c6 100644
--- a/src/blocks/generated/class_wpilib.simulation.DutyCycleSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.DutyCycleSim.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.DutyCycleSim", "args": [{"name": "dutyCycle", "type": "wpilib._wpilib.DutyCycle"}], "tooltip": "Constructs from a DutyCycle object.\n\n:param dutyCycle: DutyCycle to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.DutyCycleSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Creates a DutyCycleSim for a digital input channel.\n\n:param channel: digital input channel\n\n:returns: Simulated object\n @throws std::out_of_range if no DutyCycle is configured for that channel", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "createForChannel"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.DutyCycleSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Creates a DutyCycleSim for a simulated index.\nThe index is incremented for each simulated DutyCycle.\n\n:param index: simulator index\n\n:returns: Simulated object", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "createForIndex"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation._simulation.DutyCycleSim"}], "tooltip": "Measure the frequency.\n\n:returns: the duty cycle frequency", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "getFrequency"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation._simulation.DutyCycleSim"}], "tooltip": "Check whether this duty cycle input has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation._simulation.DutyCycleSim"}], "tooltip": "Measure the output from this duty cycle port.\n\n:returns: the output value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation._simulation.DutyCycleSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the frequency changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "registerFrequencyCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation._simulation.DutyCycleSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when this duty cycle input is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation._simulation.DutyCycleSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the output changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "registerOutputCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation._simulation.DutyCycleSim"}], "tooltip": "Reset all simulation data for the duty cycle output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation._simulation.DutyCycleSim"}, {"name": "frequency", "type": "int"}], "tooltip": "Change the duty cycle frequency.\n\n:param frequency: the new frequency", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "setFrequency"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation._simulation.DutyCycleSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether this duty cycle input has been initialized.\n\n:param initialized: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation._simulation.DutyCycleSim"}, {"name": "output", "type": "float"}], "tooltip": "Change the duty cycle output.\n\n:param output: the new output value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.DutyCycleSim", "args": [{"name": "dutyCycle", "type": "wpilib.DutyCycle"}], "tooltip": "Constructs from a DutyCycle object.\n\n:param dutyCycle: DutyCycle to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycle"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.DutyCycleSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Creates a DutyCycleSim for a digital input channel.\n\n:param channel: digital input channel\n\n:returns: Simulated object\n @throws std::out_of_range if no DutyCycle is configured for that channel", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "createForChannel"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDutyCycleSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.DutyCycleSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Creates a DutyCycleSim for a simulated index.\nThe index is incremented for each simulated DutyCycle.\n\n:param index: simulator index\n\n:returns: Simulated object", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "createForIndex"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation.DutyCycleSim"}], "tooltip": "Measure the frequency.\n\n:returns: the duty cycle frequency", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "getFrequency"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation.DutyCycleSim"}], "tooltip": "Check whether this duty cycle input has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation.DutyCycleSim"}], "tooltip": "Measure the output from this duty cycle port.\n\n:returns: the output value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation.DutyCycleSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the frequency changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "registerFrequencyCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation.DutyCycleSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when this duty cycle input is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation.DutyCycleSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the output changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "registerOutputCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation.DutyCycleSim"}], "tooltip": "Reset all simulation data for the duty cycle output.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation.DutyCycleSim"}, {"name": "frequency", "type": "int"}], "tooltip": "Change the duty cycle frequency.\n\n:param frequency: the new frequency", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "setFrequency"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation.DutyCycleSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether this duty cycle input has been initialized.\n\n:param initialized: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "dutyCycleSim", "type": "wpilib.simulation.DutyCycleSim"}, {"name": "output", "type": "float"}], "tooltip": "Change the duty cycle output.\n\n:param output: the new output value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.DutyCycleSim", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDutyCycleSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.ElevatorSim.ts b/src/blocks/generated/class_wpilib.simulation.ElevatorSim.ts
index 4696d983..ee0fdf11 100644
--- a/src/blocks/generated/class_wpilib.simulation.ElevatorSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.ElevatorSim.ts
@@ -11,27 +11,27 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 21 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myElevatorSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.ElevatorSim", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "gearbox", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "minHeight", "type": "wpimath.units.meters"}, {"name": "maxHeight", "type": "wpimath.units.meters"}, {"name": "simulateGravity", "type": "bool"}, {"name": "startingHeight", "type": "wpimath.units.meters"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Constructs a simulated elevator mechanism.\n\n:param plant: The linear system that represents the elevator.\n This system can be created with\n LinearSystemId::ElevatorSystem().\n:param gearbox: The type of and number of motors in your\n elevator gearbox.\n:param minHeight: The minimum allowed height of the elevator.\n:param maxHeight: The maximum allowed height of the elevator.\n:param simulateGravity: Whether gravity should be simulated or not.\n:param startingHeight: The starting height of the elevator.\n:param measurementStdDevs: The standard deviation of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myElevatorSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.ElevatorSim", "args": [{"name": "gearbox", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "gearing", "type": "float"}, {"name": "carriageMass", "type": "wpimath.units.kilograms"}, {"name": "drumRadius", "type": "wpimath.units.meters"}, {"name": "minHeight", "type": "wpimath.units.meters"}, {"name": "maxHeight", "type": "wpimath.units.meters"}, {"name": "simulateGravity", "type": "bool"}, {"name": "startingHeight", "type": "wpimath.units.meters"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Constructs a simulated elevator mechanism.\n\n:param gearbox: The type of and number of motors in your\n elevator gearbox.\n:param gearing: The gearing of the elevator (numbers greater\n than 1 represent reductions).\n:param carriageMass: The mass of the elevator carriage.\n:param drumRadius: The radius of the drum that your cable is\n wrapped around.\n:param minHeight: The minimum allowed height of the elevator.\n:param maxHeight: The maximum allowed height of the elevator.\n:param simulateGravity: Whether gravity should be simulated or not.\n:param startingHeight: The starting height of the elevator.\n:param measurementStdDevs: The standard deviation of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "elevatorSim", "type": "wpilib.simulation._simulation.ElevatorSim"}], "tooltip": "Returns the elevator current draw.\n\n:returns: The elevator current draw.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "getCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "elevatorSim", "type": "wpilib.simulation._simulation.ElevatorSim"}], "tooltip": "Returns the position of the elevator.\n\n:returns: The position of the elevator.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "getPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "elevatorSim", "type": "wpilib.simulation._simulation.ElevatorSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "getPositionFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.inches", "args": [{"name": "elevatorSim", "type": "wpilib.simulation._simulation.ElevatorSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "getPositionInches"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "elevatorSim", "type": "wpilib.simulation._simulation.ElevatorSim"}], "tooltip": "Returns the velocity of the elevator.\n\n:returns: The velocity of the elevator.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "getVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet_per_second", "args": [{"name": "elevatorSim", "type": "wpilib.simulation._simulation.ElevatorSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "getVelocityFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "elevatorSim", "type": "wpilib.simulation._simulation.ElevatorSim"}], "tooltip": "Returns whether the elevator has hit the lower limit.\n\n:returns: Whether the elevator has hit the lower limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "hasHitLowerLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "elevatorSim", "type": "wpilib.simulation._simulation.ElevatorSim"}], "tooltip": "Returns whether the elevator has hit the upper limit.\n\n:returns: Whether the elevator has hit the upper limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "hasHitUpperLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "elevatorSim", "type": "wpilib.simulation._simulation.ElevatorSim"}, {"name": "voltage", "type": "wpimath.units.volts"}], "tooltip": "Sets the input voltage for the elevator.\n\n:param voltage: The input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "setInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "elevatorSim", "type": "wpilib.simulation._simulation.ElevatorSim"}, {"name": "position", "type": "wpimath.units.meters"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Sets the elevator's state. The new position will be limited between the\nminimum and maximum allowed heights.\n\n:param position: The new position\n:param velocity: The new velocity", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "elevatorSim", "type": "wpilib.simulation._simulation.ElevatorSim"}, {"name": "elevatorHeight", "type": "wpimath.units.meters"}], "tooltip": "Returns whether the elevator would hit the lower limit.\n\n:param elevatorHeight: The elevator height.\n\n:returns: Whether the elevator would hit the lower limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "wouldHitLowerLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "elevatorSim", "type": "wpilib.simulation._simulation.ElevatorSim"}, {"name": "elevatorHeight", "type": "wpimath.units.meters"}], "tooltip": "Returns whether the elevator would hit the upper limit.\n\n:param elevatorHeight: The elevator height.\n\n:returns: Whether the elevator would hit the upper limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "wouldHitUpperLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myElevatorSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.ElevatorSim", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "gearbox", "type": "wpimath.system.plant.DCMotor"}, {"name": "minHeight", "type": "wpimath.units.meters"}, {"name": "maxHeight", "type": "wpimath.units.meters"}, {"name": "simulateGravity", "type": "bool"}, {"name": "startingHeight", "type": "wpimath.units.meters"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Constructs a simulated elevator mechanism.\n\n:param plant: The linear system that represents the elevator.\n This system can be created with\n LinearSystemId::ElevatorSystem().\n:param gearbox: The type of and number of motors in your\n elevator gearbox.\n:param minHeight: The minimum allowed height of the elevator.\n:param maxHeight: The maximum allowed height of the elevator.\n:param simulateGravity: Whether gravity should be simulated or not.\n:param startingHeight: The starting height of the elevator.\n:param measurementStdDevs: The standard deviation of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myElevatorSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.ElevatorSim", "args": [{"name": "gearbox", "type": "wpimath.system.plant.DCMotor"}, {"name": "gearing", "type": "float"}, {"name": "carriageMass", "type": "wpimath.units.kilograms"}, {"name": "drumRadius", "type": "wpimath.units.meters"}, {"name": "minHeight", "type": "wpimath.units.meters"}, {"name": "maxHeight", "type": "wpimath.units.meters"}, {"name": "simulateGravity", "type": "bool"}, {"name": "startingHeight", "type": "wpimath.units.meters"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Constructs a simulated elevator mechanism.\n\n:param gearbox: The type of and number of motors in your\n elevator gearbox.\n:param gearing: The gearing of the elevator (numbers greater\n than 1 represent reductions).\n:param carriageMass: The mass of the elevator carriage.\n:param drumRadius: The radius of the drum that your cable is\n wrapped around.\n:param minHeight: The minimum allowed height of the elevator.\n:param maxHeight: The maximum allowed height of the elevator.\n:param simulateGravity: Whether gravity should be simulated or not.\n:param startingHeight: The starting height of the elevator.\n:param measurementStdDevs: The standard deviation of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "elevatorSim", "type": "wpilib.simulation.ElevatorSim"}], "tooltip": "Returns the elevator current draw.\n\n:returns: The elevator current draw.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "getCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "elevatorSim", "type": "wpilib.simulation.ElevatorSim"}], "tooltip": "Returns the position of the elevator.\n\n:returns: The position of the elevator.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "getPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "elevatorSim", "type": "wpilib.simulation.ElevatorSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "getPositionFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.inches", "args": [{"name": "elevatorSim", "type": "wpilib.simulation.ElevatorSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "getPositionInches"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "elevatorSim", "type": "wpilib.simulation.ElevatorSim"}], "tooltip": "Returns the velocity of the elevator.\n\n:returns: The velocity of the elevator.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "getVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet_per_second", "args": [{"name": "elevatorSim", "type": "wpilib.simulation.ElevatorSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "getVelocityFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "elevatorSim", "type": "wpilib.simulation.ElevatorSim"}], "tooltip": "Returns whether the elevator has hit the lower limit.\n\n:returns: Whether the elevator has hit the lower limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "hasHitLowerLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "elevatorSim", "type": "wpilib.simulation.ElevatorSim"}], "tooltip": "Returns whether the elevator has hit the upper limit.\n\n:returns: Whether the elevator has hit the upper limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "hasHitUpperLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "elevatorSim", "type": "wpilib.simulation.ElevatorSim"}, {"name": "voltage", "type": "wpimath.units.volts"}], "tooltip": "Sets the input voltage for the elevator.\n\n:param voltage: The input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "setInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "elevatorSim", "type": "wpilib.simulation.ElevatorSim"}, {"name": "position", "type": "wpimath.units.meters"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Sets the elevator's state. The new position will be limited between the\nminimum and maximum allowed heights.\n\n:param position: The new position\n:param velocity: The new velocity", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "elevatorSim", "type": "wpilib.simulation.ElevatorSim"}, {"name": "elevatorHeight", "type": "wpimath.units.meters"}], "tooltip": "Returns whether the elevator would hit the lower limit.\n\n:param elevatorHeight: The elevator height.\n\n:returns: Whether the elevator would hit the lower limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "wouldHitLowerLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "elevatorSim", "type": "wpilib.simulation.ElevatorSim"}, {"name": "elevatorHeight", "type": "wpimath.units.meters"}], "tooltip": "Returns whether the elevator would hit the upper limit.\n\n:param elevatorHeight: The elevator height.\n\n:returns: Whether the elevator would hit the upper limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.ElevatorSim", "FUNC": "wouldHitUpperLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.EncoderSim.ts b/src/blocks/generated/class_wpilib.simulation.EncoderSim.ts
index 27697d80..cc99e68b 100644
--- a/src/blocks/generated/class_wpilib.simulation.EncoderSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.EncoderSim.ts
@@ -11,41 +11,41 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 35 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEncoderSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.EncoderSim", "args": [{"name": "encoder", "type": "wpilib._wpilib.Encoder"}], "tooltip": "Constructs from an Encoder object.\n\n:param encoder: Encoder to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEncoderSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.EncoderSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Creates an EncoderSim for a digital input channel. Encoders take two\nchannels, so either one may be specified.\n\n:param channel: digital input channel\n\n:returns: Simulated object\n @throws NoSuchElementException if no Encoder is configured for that channel", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "createForChannel"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEncoderSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.EncoderSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Creates an EncoderSim for a simulated index.\nThe index is incremented for each simulated Encoder.\n\n:param index: simulator index\n\n:returns: Simulated object", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "createForIndex"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}], "tooltip": "Read the count of the encoder.\n\n:returns: the count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}], "tooltip": "Get the direction of the encoder.\n\n:returns: the direction of the encoder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}], "tooltip": "Read the distance of the encoder.\n\n:returns: the encoder distance", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getDistance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}], "tooltip": "Read the distance per pulse of the encoder.\n\n:returns: the encoder distance per pulse", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getDistancePerPulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}], "tooltip": "Read the Initialized value of the encoder.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}], "tooltip": "Get the max period of the encoder.\n\n:returns: the max period of the encoder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getMaxPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}], "tooltip": "Read the period of the encoder.\n\n:returns: the encoder period", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}], "tooltip": "Get the rate of the encoder.\n\n:returns: the rate of change", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}], "tooltip": "Check if the encoder has been reset.\n\n:returns: true if reset", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getReset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}], "tooltip": "Get the reverse direction of the encoder.\n\n:returns: the reverse direction of the encoder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getReverseDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}], "tooltip": "Get the samples-to-average value.\n\n:returns: the samples-to-average value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the count property of the encoder.\n\n:param callback: the callback that will be called whenever the count\n property is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerCountCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the direction of the encoder.\n\n:param callback: the callback that will be called whenever the direction\n is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerDirectionCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the distance per pulse value of this encoder.\n\n:param callback: the callback that will be called whenever the\n distance per pulse is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerDistancePerPulseCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the Initialized property of the encoder.\n\n:param callback: the callback that will be called whenever the Initialized\n property is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the max period of the encoder is\nchanged.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerMaxPeriodCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the period of the encoder.\n\n:param callback: the callback that will be called whenever the period is\n changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerPeriodCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be called whenever the encoder is reset.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerResetCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the reverse direction.\n\n:param callback: the callback that will be called whenever the reverse\n direction is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerReverseDirectionCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the samples-to-average value of this encoder.\n\n:param callback: the callback that will be called whenever the\n samples-to-average is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerSamplesToAverageCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}], "tooltip": "Resets all simulation data for this encoder.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "count", "type": "int"}], "tooltip": "Change the count of the encoder.\n\n:param count: the new count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "direction", "type": "bool"}], "tooltip": "Set the direction of the encoder.\n\n:param direction: the new direction", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "distance", "type": "float"}], "tooltip": "Change the encoder distance.\n\n:param distance: the new distance", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setDistance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "distancePerPulse", "type": "float"}], "tooltip": "Change the encoder distance per pulse.\n\n:param distancePerPulse: the new distance per pulse", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setDistancePerPulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Change the Initialized value of the encoder.\n\n:param initialized: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "maxPeriod", "type": "float"}], "tooltip": "Change the max period of the encoder.\n\n:param maxPeriod: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setMaxPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "period", "type": "float"}], "tooltip": "Change the encoder period.\n\n:param period: the new period", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "rate", "type": "float"}], "tooltip": "Change the rate of the encoder.\n\n:param rate: the new rate", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "reset", "type": "bool"}], "tooltip": "Change the reset property of the encoder.\n\n:param reset: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setReset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "reverseDirection", "type": "bool"}], "tooltip": "Set the reverse direction.\n\n:param reverseDirection: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setReverseDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation._simulation.EncoderSim"}, {"name": "samplesToAverage", "type": "int"}], "tooltip": "Set the samples-to-average value.\n\n:param samplesToAverage: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEncoderSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.EncoderSim", "args": [{"name": "encoder", "type": "wpilib.Encoder"}], "tooltip": "Constructs from an Encoder object.\n\n:param encoder: Encoder to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoder"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEncoderSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.EncoderSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Creates an EncoderSim for a digital input channel. Encoders take two\nchannels, so either one may be specified.\n\n:param channel: digital input channel\n\n:returns: Simulated object\n @throws NoSuchElementException if no Encoder is configured for that channel", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "createForChannel"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEncoderSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.EncoderSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Creates an EncoderSim for a simulated index.\nThe index is incremented for each simulated Encoder.\n\n:param index: simulator index\n\n:returns: Simulated object", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "createForIndex"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}], "tooltip": "Read the count of the encoder.\n\n:returns: the count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}], "tooltip": "Get the direction of the encoder.\n\n:returns: the direction of the encoder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}], "tooltip": "Read the distance of the encoder.\n\n:returns: the encoder distance", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getDistance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}], "tooltip": "Read the distance per pulse of the encoder.\n\n:returns: the encoder distance per pulse", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getDistancePerPulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}], "tooltip": "Read the Initialized value of the encoder.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}], "tooltip": "Get the max period of the encoder.\n\n:returns: the max period of the encoder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getMaxPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}], "tooltip": "Read the period of the encoder.\n\n:returns: the encoder period", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}], "tooltip": "Get the rate of the encoder.\n\n:returns: the rate of change", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}], "tooltip": "Check if the encoder has been reset.\n\n:returns: true if reset", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getReset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}], "tooltip": "Get the reverse direction of the encoder.\n\n:returns: the reverse direction of the encoder", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getReverseDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}], "tooltip": "Get the samples-to-average value.\n\n:returns: the samples-to-average value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "getSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the count property of the encoder.\n\n:param callback: the callback that will be called whenever the count\n property is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerCountCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the direction of the encoder.\n\n:param callback: the callback that will be called whenever the direction\n is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerDirectionCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the distance per pulse value of this encoder.\n\n:param callback: the callback that will be called whenever the\n distance per pulse is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerDistancePerPulseCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the Initialized property of the encoder.\n\n:param callback: the callback that will be called whenever the Initialized\n property is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the max period of the encoder is\nchanged.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerMaxPeriodCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the period of the encoder.\n\n:param callback: the callback that will be called whenever the period is\n changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerPeriodCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be called whenever the encoder is reset.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerResetCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the reverse direction.\n\n:param callback: the callback that will be called whenever the reverse\n direction is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerReverseDirectionCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback on the samples-to-average value of this encoder.\n\n:param callback: the callback that will be called whenever the\n samples-to-average is changed\n:param initialNotify: if true, the callback will be run on the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "registerSamplesToAverageCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}], "tooltip": "Resets all simulation data for this encoder.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "count", "type": "int"}], "tooltip": "Change the count of the encoder.\n\n:param count: the new count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "direction", "type": "bool"}], "tooltip": "Set the direction of the encoder.\n\n:param direction: the new direction", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "distance", "type": "float"}], "tooltip": "Change the encoder distance.\n\n:param distance: the new distance", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setDistance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "distancePerPulse", "type": "float"}], "tooltip": "Change the encoder distance per pulse.\n\n:param distancePerPulse: the new distance per pulse", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setDistancePerPulse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Change the Initialized value of the encoder.\n\n:param initialized: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "maxPeriod", "type": "float"}], "tooltip": "Change the max period of the encoder.\n\n:param maxPeriod: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setMaxPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "period", "type": "float"}], "tooltip": "Change the encoder period.\n\n:param period: the new period", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "rate", "type": "float"}], "tooltip": "Change the rate of the encoder.\n\n:param rate: the new rate", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "reset", "type": "bool"}], "tooltip": "Change the reset property of the encoder.\n\n:param reset: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setReset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "reverseDirection", "type": "bool"}], "tooltip": "Set the reverse direction.\n\n:param reverseDirection: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setReverseDirection"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "encoderSim", "type": "wpilib.simulation.EncoderSim"}, {"name": "samplesToAverage", "type": "int"}], "tooltip": "Set the samples-to-average value.\n\n:param samplesToAverage: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.EncoderSim", "FUNC": "setSamplesToAverage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.FlywheelSim.ts b/src/blocks/generated/class_wpilib.simulation.FlywheelSim.ts
index 664914ec..d421f262 100644
--- a/src/blocks/generated/class_wpilib.simulation.FlywheelSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.FlywheelSim.ts
@@ -11,25 +11,25 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 19 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFlywheelSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.FlywheelSim", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "gearbox", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(1)]"}], "tooltip": "Creates a simulated flywheel mechanism.\n\n:param plant: The linear system representing the flywheel. This\n system can be created with\n LinearSystemId::FlywheelSystem() or\n LinearSystemId::IdentifyVelocitySystem().\n:param gearbox: The type of and number of motors in the flywheel\n gearbox.\n:param measurementStdDevs: The standard deviation of the measurement noise.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.kilogram_square_meters", "args": [{"name": "flywheelSim", "type": "wpilib.simulation._simulation.FlywheelSim"}], "tooltip": "Returns the moment of inertia", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "J"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "flywheelSim", "type": "wpilib.simulation._simulation.FlywheelSim"}], "tooltip": "Returns the gearbox.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "gearbox"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "flywheelSim", "type": "wpilib.simulation._simulation.FlywheelSim"}], "tooltip": "Returns the gearing;", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "gearing"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second_squared", "args": [{"name": "flywheelSim", "type": "wpilib.simulation._simulation.FlywheelSim"}], "tooltip": "Returns the flywheel's acceleration.\n\n:returns: The flywheel's acceleration", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "getAngularAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "flywheelSim", "type": "wpilib.simulation._simulation.FlywheelSim"}], "tooltip": "Returns the flywheel's velocity.\n\n:returns: The flywheel's velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "getAngularVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "flywheelSim", "type": "wpilib.simulation._simulation.FlywheelSim"}], "tooltip": "Returns the flywheel's current draw.\n\n:returns: The flywheel's current draw.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "getCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "flywheelSim", "type": "wpilib.simulation._simulation.FlywheelSim"}], "tooltip": "Gets the input voltage for the flywheel.\n\n:returns: The flywheel input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "getInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.newton_meters", "args": [{"name": "flywheelSim", "type": "wpilib.simulation._simulation.FlywheelSim"}], "tooltip": "Returns the flywheel's torque.\n\n:returns: The flywheel's torque", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "getTorque"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "flywheelSim", "type": "wpilib.simulation._simulation.FlywheelSim"}, {"name": "voltage", "type": "wpimath.units.volts"}], "tooltip": "Sets the input voltage for the flywheel.\n\n:param voltage: The input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "setInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "flywheelSim", "type": "wpilib.simulation._simulation.FlywheelSim"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Sets the flywheel's angular velocity.\n\n:param velocity: The new velocity", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "setVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myFlywheelSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.FlywheelSim", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "gearbox", "type": "wpimath.system.plant.DCMotor"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(1)]"}], "tooltip": "Creates a simulated flywheel mechanism.\n\n:param plant: The linear system representing the flywheel. This\n system can be created with\n LinearSystemId::FlywheelSystem() or\n LinearSystemId::IdentifyVelocitySystem().\n:param gearbox: The type of and number of motors in the flywheel\n gearbox.\n:param measurementStdDevs: The standard deviation of the measurement noise.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.kilogram_square_meters", "args": [{"name": "flywheelSim", "type": "wpilib.simulation.FlywheelSim"}], "tooltip": "Returns the moment of inertia", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "J"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "flywheelSim", "type": "wpilib.simulation.FlywheelSim"}], "tooltip": "Returns the gearbox.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "gearbox"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "flywheelSim", "type": "wpilib.simulation.FlywheelSim"}], "tooltip": "Returns the gearing;", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "gearing"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second_squared", "args": [{"name": "flywheelSim", "type": "wpilib.simulation.FlywheelSim"}], "tooltip": "Returns the flywheel's acceleration.\n\n:returns: The flywheel's acceleration", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "getAngularAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "flywheelSim", "type": "wpilib.simulation.FlywheelSim"}], "tooltip": "Returns the flywheel's velocity.\n\n:returns: The flywheel's velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "getAngularVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "flywheelSim", "type": "wpilib.simulation.FlywheelSim"}], "tooltip": "Returns the flywheel's current draw.\n\n:returns: The flywheel's current draw.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "getCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "flywheelSim", "type": "wpilib.simulation.FlywheelSim"}], "tooltip": "Gets the input voltage for the flywheel.\n\n:returns: The flywheel input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "getInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.newton_meters", "args": [{"name": "flywheelSim", "type": "wpilib.simulation.FlywheelSim"}], "tooltip": "Returns the flywheel's torque.\n\n:returns: The flywheel's torque", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "getTorque"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "flywheelSim", "type": "wpilib.simulation.FlywheelSim"}, {"name": "voltage", "type": "wpimath.units.volts"}], "tooltip": "Sets the input voltage for the flywheel.\n\n:param voltage: The input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "setInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "flywheelSim", "type": "wpilib.simulation.FlywheelSim"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Sets the flywheel's angular velocity.\n\n:param velocity: The new velocity", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.FlywheelSim", "FUNC": "setVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myFlywheelSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.GenericHIDSim.ts b/src/blocks/generated/class_wpilib.simulation.GenericHIDSim.ts
index 6deb2f49..e4d26231 100644
--- a/src/blocks/generated/class_wpilib.simulation.GenericHIDSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.GenericHIDSim.ts
@@ -11,22 +11,22 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 16 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myGenericHIDSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.GenericHIDSim", "args": [{"name": "joystick", "type": "wpilib.interfaces._interfaces.GenericHID"}], "tooltip": "Constructs from a GenericHID object.\n\n:param joystick: joystick to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myGenericHIDSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.GenericHIDSim", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs from a joystick port number.\n\n:param port: port number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "outputNumber", "type": "int"}], "tooltip": "Read the output of a button.\n\n:param outputNumber: the button number\n\n:returns: the value of the button (true = pressed)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}], "tooltip": "Get the encoded 16-bit integer that passes button values.\n\n:returns: the button values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.RumbleType"}], "tooltip": "Get the joystick rumble.\n\n:param type: the rumble to read\n\n:returns: the rumble value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}], "tooltip": "Updates joystick data so that new values are visible to the user program.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "notifyNewData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the axis count of this device.\n\n:param count: the new axis count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Set the type of an axis.\n\n:param axis: the axis\n:param type: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the button count of this device.\n\n:param count: the new button count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "name", "type": "str"}], "tooltip": "Set the name of this device.\n\n:param name: the new device name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of a given POV.\n\n:param pov: the POV to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of the default POV (port 0).\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the POV count of this device.\n\n:param count: the new POV count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set the value of a given axis.\n\n:param axis: the axis to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "button", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a given button.\n\n:param button: the button to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.HIDType"}], "tooltip": "Set the type of this device.\n\n:param type: the new device type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHIDType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myGenericHIDSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.GenericHIDSim", "args": [{"name": "joystick", "type": "wpilib.interfaces.GenericHID"}], "tooltip": "Constructs from a GenericHID object.\n\n:param joystick: joystick to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHID"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myGenericHIDSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.GenericHIDSim", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs from a joystick port number.\n\n:param port: port number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "outputNumber", "type": "int"}], "tooltip": "Read the output of a button.\n\n:param outputNumber: the button number\n\n:returns: the value of the button (true = pressed)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}], "tooltip": "Get the encoded 16-bit integer that passes button values.\n\n:returns: the button values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.RumbleType"}], "tooltip": "Get the joystick rumble.\n\n:param type: the rumble to read\n\n:returns: the rumble value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}], "tooltip": "Updates joystick data so that new values are visible to the user program.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "notifyNewData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the axis count of this device.\n\n:param count: the new axis count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Set the type of an axis.\n\n:param axis: the axis\n:param type: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the button count of this device.\n\n:param count: the new button count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "name", "type": "str"}], "tooltip": "Set the name of this device.\n\n:param name: the new device name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of a given POV.\n\n:param pov: the POV to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of the default POV (port 0).\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the POV count of this device.\n\n:param count: the new POV count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set the value of a given axis.\n\n:param axis: the axis to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "button", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a given button.\n\n:param button: the button to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.HIDType"}], "tooltip": "Set the type of this device.\n\n:param type: the new device type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHIDType"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.JoystickSim.ts b/src/blocks/generated/class_wpilib.simulation.JoystickSim.ts
index 961cc76e..fc0bb11c 100644
--- a/src/blocks/generated/class_wpilib.simulation.JoystickSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.JoystickSim.ts
@@ -11,29 +11,29 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 23 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystickSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.JoystickSim", "args": [{"name": "joystick", "type": "wpilib._wpilib.Joystick"}], "tooltip": "Constructs from a Joystick object.\n\n:param joystick: joystick to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystickSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.JoystickSim", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs from a joystick port number.\n\n:param port: port number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "outputNumber", "type": "int"}], "tooltip": "Read the output of a button.\n\n:param outputNumber: the button number\n\n:returns: the value of the button (true = pressed)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}], "tooltip": "Get the encoded 16-bit integer that passes button values.\n\n:returns: the button values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.RumbleType"}], "tooltip": "Get the joystick rumble.\n\n:param type: the rumble to read\n\n:returns: the rumble value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}], "tooltip": "Updates joystick data so that new values are visible to the user program.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "notifyNewData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the axis count of this device.\n\n:param count: the new axis count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Set the type of an axis.\n\n:param axis: the axis\n:param type: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the button count of this device.\n\n:param count: the new button count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "name", "type": "str"}], "tooltip": "Set the name of this device.\n\n:param name: the new device name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of a given POV.\n\n:param pov: the POV to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of the default POV (port 0).\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the POV count of this device.\n\n:param count: the new POV count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set the value of a given axis.\n\n:param axis: the axis to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "button", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a given button.\n\n:param button: the button to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation._simulation.JoystickSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the throttle value of the joystick.\n\n:param value: the new throttle value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setThrottle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation._simulation.JoystickSim"}, {"name": "state", "type": "bool"}], "tooltip": "Set the top state of the joystick.\n\n:param state: the new state", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setTop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation._simulation.JoystickSim"}, {"name": "state", "type": "bool"}], "tooltip": "Set the trigger value of the joystick.\n\n:param state: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation._simulation.JoystickSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the twist value of the joystick.\n\n:param value: the new twist value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setTwist"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.HIDType"}], "tooltip": "Set the type of this device.\n\n:param type: the new device type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHIDType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation._simulation.JoystickSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the X value of the joystick.\n\n:param value: the new X value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation._simulation.JoystickSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the Y value of the joystick.\n\n:param value: the new Y value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation._simulation.JoystickSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the Z value of the joystick.\n\n:param value: the new Z value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystickSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.JoystickSim", "args": [{"name": "joystick", "type": "wpilib.Joystick"}], "tooltip": "Constructs from a Joystick object.\n\n:param joystick: joystick to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystick"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myJoystickSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.JoystickSim", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs from a joystick port number.\n\n:param port: port number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "outputNumber", "type": "int"}], "tooltip": "Read the output of a button.\n\n:param outputNumber: the button number\n\n:returns: the value of the button (true = pressed)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}], "tooltip": "Get the encoded 16-bit integer that passes button values.\n\n:returns: the button values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.RumbleType"}], "tooltip": "Get the joystick rumble.\n\n:param type: the rumble to read\n\n:returns: the rumble value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}], "tooltip": "Updates joystick data so that new values are visible to the user program.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "notifyNewData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the axis count of this device.\n\n:param count: the new axis count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Set the type of an axis.\n\n:param axis: the axis\n:param type: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the button count of this device.\n\n:param count: the new button count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "name", "type": "str"}], "tooltip": "Set the name of this device.\n\n:param name: the new device name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of a given POV.\n\n:param pov: the POV to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of the default POV (port 0).\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the POV count of this device.\n\n:param count: the new POV count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set the value of a given axis.\n\n:param axis: the axis to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "button", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a given button.\n\n:param button: the button to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation.JoystickSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the throttle value of the joystick.\n\n:param value: the new throttle value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setThrottle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation.JoystickSim"}, {"name": "state", "type": "bool"}], "tooltip": "Set the top state of the joystick.\n\n:param state: the new state", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setTop"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation.JoystickSim"}, {"name": "state", "type": "bool"}], "tooltip": "Set the trigger value of the joystick.\n\n:param state: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation.JoystickSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the twist value of the joystick.\n\n:param value: the new twist value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setTwist"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.HIDType"}], "tooltip": "Set the type of this device.\n\n:param type: the new device type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHIDType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation.JoystickSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the X value of the joystick.\n\n:param value: the new X value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation.JoystickSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the Y value of the joystick.\n\n:param value: the new Y value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "joystickSim", "type": "wpilib.simulation.JoystickSim"}, {"name": "value", "type": "float"}], "tooltip": "Set the Z value of the joystick.\n\n:param value: the new Z value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.JoystickSim", "FUNC": "setZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_1_1_1.ts b/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_1_1_1.ts
index aeeb2a4f..18e9c4f6 100644
--- a/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_1_1_1.ts
+++ b/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_1_1_1.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.LinearSystemSim_1_1_1", "args": [{"name": "system", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(1)]"}], "tooltip": "Creates a simulated generic linear system.\n\n:param system: The system to simulate.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.LinearSystemSim_1_1_1", "args": [{"name": "system", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(1)]"}], "tooltip": "Creates a simulated generic linear system.\n\n:param system: The system to simulate.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_1", "type": "wpilib.simulation.LinearSystemSim_1_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_1", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_1_1_2.ts b/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_1_1_2.ts
index 59f56baf..f5abb5dd 100644
--- a/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_1_1_2.ts
+++ b/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_1_1_2.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.LinearSystemSim_1_1_2", "args": [{"name": "system", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Creates a simulated generic linear system.\n\n:param system: The system to simulate.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_2"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_2"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_2"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_2"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_1_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.LinearSystemSim_1_1_2", "args": [{"name": "system", "type": "wpimath.system.LinearSystem_1_1_2"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Creates a simulated generic linear system.\n\n:param system: The system to simulate.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation.LinearSystemSim_1_1_2"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation.LinearSystemSim_1_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation.LinearSystemSim_1_1_2"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation.LinearSystemSim_1_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation.LinearSystemSim_1_1_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation.LinearSystemSim_1_1_2"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation.LinearSystemSim_1_1_2"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_1_1_2", "type": "wpilib.simulation.LinearSystemSim_1_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_1_1_2", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_1_1_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_1_1.ts b/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_1_1.ts
index 4d7555cd..9609b81c 100644
--- a/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_1_1.ts
+++ b/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_1_1.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.LinearSystemSim_2_1_1", "args": [{"name": "system", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(1)]"}], "tooltip": "Creates a simulated generic linear system.\n\n:param system: The system to simulate.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_1"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_1"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_1"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_1"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.LinearSystemSim_2_1_1", "args": [{"name": "system", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(1)]"}], "tooltip": "Creates a simulated generic linear system.\n\n:param system: The system to simulate.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation.LinearSystemSim_2_1_1"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation.LinearSystemSim_2_1_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation.LinearSystemSim_2_1_1"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation.LinearSystemSim_2_1_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation.LinearSystemSim_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation.LinearSystemSim_2_1_1"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation.LinearSystemSim_2_1_1"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_1", "type": "wpilib.simulation.LinearSystemSim_2_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_1", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_1_2.ts b/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_1_2.ts
index 6cfeb85f..62da8cdb 100644
--- a/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_1_2.ts
+++ b/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_1_2.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.LinearSystemSim_2_1_2", "args": [{"name": "system", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Creates a simulated generic linear system.\n\n:param system: The system to simulate.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.LinearSystemSim_2_1_2", "args": [{"name": "system", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Creates a simulated generic linear system.\n\n:param system: The system to simulate.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_2_1.ts b/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_2_1.ts
index 7e125ac0..00494370 100644
--- a/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_2_1.ts
+++ b/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_2_1.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.LinearSystemSim_2_2_1", "args": [{"name": "system", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(1)]"}], "tooltip": "Creates a simulated generic linear system.\n\n:param system: The system to simulate.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_1"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_1"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_1"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_1"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_1"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.LinearSystemSim_2_2_1", "args": [{"name": "system", "type": "wpimath.system.LinearSystem_2_2_1"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(1)]"}], "tooltip": "Creates a simulated generic linear system.\n\n:param system: The system to simulate.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation.LinearSystemSim_2_2_1"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation.LinearSystemSim_2_2_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation.LinearSystemSim_2_2_1"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation.LinearSystemSim_2_2_1"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation.LinearSystemSim_2_2_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation.LinearSystemSim_2_2_1"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation.LinearSystemSim_2_2_1"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_1", "type": "wpilib.simulation.LinearSystemSim_2_2_1"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_1", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_2_2.ts b/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_2_2.ts
index 0df758e2..cd7ea412 100644
--- a/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_2_2.ts
+++ b/src/blocks/generated/class_wpilib.simulation.LinearSystemSim_2_2_2.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.LinearSystemSim_2_2_2", "args": [{"name": "system", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Creates a simulated generic linear system.\n\n:param system: The system to simulate.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_2"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_2"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_2"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_2"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_2_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.LinearSystemSim_2_2_2", "args": [{"name": "system", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Creates a simulated generic linear system.\n\n:param system: The system to simulate.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation.LinearSystemSim_2_2_2"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation.LinearSystemSim_2_2_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation.LinearSystemSim_2_2_2"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation.LinearSystemSim_2_2_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation.LinearSystemSim_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation.LinearSystemSim_2_2_2"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation.LinearSystemSim_2_2_2"}, {"name": "state", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Sets the system state.\n\n:param state: The new state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_2_2", "type": "wpilib.simulation.LinearSystemSim_2_2_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_2_2", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_2_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.PS4ControllerSim.ts b/src/blocks/generated/class_wpilib.simulation.PS4ControllerSim.ts
index b0c06ebb..7d850157 100644
--- a/src/blocks/generated/class_wpilib.simulation.PS4ControllerSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.PS4ControllerSim.ts
@@ -11,42 +11,42 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 36 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPS4ControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.PS4ControllerSim", "args": [{"name": "joystick", "type": "wpilib._wpilib.PS4Controller"}], "tooltip": "Constructs from a PS4Controller object.\n\n:param joystick: controller to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPS4ControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.PS4ControllerSim", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs from a joystick port number.\n\n:param port: port number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "outputNumber", "type": "int"}], "tooltip": "Read the output of a button.\n\n:param outputNumber: the button number\n\n:returns: the value of the button (true = pressed)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}], "tooltip": "Get the encoded 16-bit integer that passes button values.\n\n:returns: the button values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.RumbleType"}], "tooltip": "Get the joystick rumble.\n\n:param type: the rumble to read\n\n:returns: the rumble value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}], "tooltip": "Updates joystick data so that new values are visible to the user program.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "notifyNewData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the axis count of this device.\n\n:param count: the new axis count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Set the type of an axis.\n\n:param axis: the axis\n:param type: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the button count of this device.\n\n:param count: the new button count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the circle button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setCircleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the cross button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setCrossButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left trigger 1 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setL1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the value of the left trigger 2 axis on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setL2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left trigger 2 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setL2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the L3 (left stick) button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setL3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "name", "type": "str"}], "tooltip": "Set the name of this device.\n\n:param name: the new device name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the options button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setOptionsButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of a given POV.\n\n:param pov: the POV to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of the default POV (port 0).\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the POV count of this device.\n\n:param count: the new POV count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the PlayStation button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setPSButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right trigger 1 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setR1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the value of the right trigger 2 axis on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setR2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right trigger 2 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setR2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the R3 (right stick) button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setR3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set the value of a given axis.\n\n:param axis: the axis to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "button", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a given button.\n\n:param button: the button to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the share button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setShareButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the square button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setSquareButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the touchpad button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setTouchpadButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation._simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the triangle button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setTriangleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.HIDType"}], "tooltip": "Set the type of this device.\n\n:param type: the new device type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHIDType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPS4ControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.PS4ControllerSim", "args": [{"name": "joystick", "type": "wpilib.PS4Controller"}], "tooltip": "Constructs from a PS4Controller object.\n\n:param joystick: controller to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4Controller"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPS4ControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.PS4ControllerSim", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs from a joystick port number.\n\n:param port: port number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "outputNumber", "type": "int"}], "tooltip": "Read the output of a button.\n\n:param outputNumber: the button number\n\n:returns: the value of the button (true = pressed)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}], "tooltip": "Get the encoded 16-bit integer that passes button values.\n\n:returns: the button values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.RumbleType"}], "tooltip": "Get the joystick rumble.\n\n:param type: the rumble to read\n\n:returns: the rumble value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}], "tooltip": "Updates joystick data so that new values are visible to the user program.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "notifyNewData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the axis count of this device.\n\n:param count: the new axis count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Set the type of an axis.\n\n:param axis: the axis\n:param type: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the button count of this device.\n\n:param count: the new button count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the circle button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setCircleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the cross button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setCrossButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left trigger 1 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setL1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the value of the left trigger 2 axis on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setL2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left trigger 2 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setL2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the L3 (left stick) button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setL3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "name", "type": "str"}], "tooltip": "Set the name of this device.\n\n:param name: the new device name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the options button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setOptionsButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of a given POV.\n\n:param pov: the POV to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of the default POV (port 0).\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the POV count of this device.\n\n:param count: the new POV count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the PlayStation button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setPSButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right trigger 1 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setR1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the value of the right trigger 2 axis on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setR2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right trigger 2 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setR2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the R3 (right stick) button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setR3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set the value of a given axis.\n\n:param axis: the axis to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "button", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a given button.\n\n:param button: the button to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the share button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setShareButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the square button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setSquareButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the touchpad button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setTouchpadButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS4ControllerSim", "type": "wpilib.simulation.PS4ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the triangle button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS4ControllerSim", "FUNC": "setTriangleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS4ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.HIDType"}], "tooltip": "Set the type of this device.\n\n:param type: the new device type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHIDType"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.PS5ControllerSim.ts b/src/blocks/generated/class_wpilib.simulation.PS5ControllerSim.ts
index 0e914ab4..39c537d5 100644
--- a/src/blocks/generated/class_wpilib.simulation.PS5ControllerSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.PS5ControllerSim.ts
@@ -11,42 +11,42 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 36 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPS5ControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.PS5ControllerSim", "args": [{"name": "joystick", "type": "wpilib._wpilib.PS5Controller"}], "tooltip": "Constructs from a PS5Controller object.\n\n:param joystick: controller to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPS5ControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.PS5ControllerSim", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs from a joystick port number.\n\n:param port: port number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "outputNumber", "type": "int"}], "tooltip": "Read the output of a button.\n\n:param outputNumber: the button number\n\n:returns: the value of the button (true = pressed)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}], "tooltip": "Get the encoded 16-bit integer that passes button values.\n\n:returns: the button values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.RumbleType"}], "tooltip": "Get the joystick rumble.\n\n:param type: the rumble to read\n\n:returns: the rumble value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}], "tooltip": "Updates joystick data so that new values are visible to the user program.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "notifyNewData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the axis count of this device.\n\n:param count: the new axis count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Set the type of an axis.\n\n:param axis: the axis\n:param type: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the button count of this device.\n\n:param count: the new button count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the circle button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setCircleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the create button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setCreateButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the cross button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setCrossButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left trigger 1 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setL1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the value of the left trigger 2 axis on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setL2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left trigger 2 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setL2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the L3 (left stick) button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setL3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "name", "type": "str"}], "tooltip": "Set the name of this device.\n\n:param name: the new device name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the options button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setOptionsButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of a given POV.\n\n:param pov: the POV to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of the default POV (port 0).\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the POV count of this device.\n\n:param count: the new POV count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the PlayStation button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setPSButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right trigger 1 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setR1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the value of the right trigger 2 axis on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setR2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right trigger 2 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setR2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the R3 (right stick) button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setR3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set the value of a given axis.\n\n:param axis: the axis to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "button", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a given button.\n\n:param button: the button to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the square button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setSquareButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the touchpad button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setTouchpadButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation._simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the triangle button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setTriangleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.HIDType"}], "tooltip": "Set the type of this device.\n\n:param type: the new device type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHIDType"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPS5ControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.PS5ControllerSim", "args": [{"name": "joystick", "type": "wpilib.PS5Controller"}], "tooltip": "Constructs from a PS5Controller object.\n\n:param joystick: controller to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5Controller"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPS5ControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.PS5ControllerSim", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs from a joystick port number.\n\n:param port: port number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "outputNumber", "type": "int"}], "tooltip": "Read the output of a button.\n\n:param outputNumber: the button number\n\n:returns: the value of the button (true = pressed)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}], "tooltip": "Get the encoded 16-bit integer that passes button values.\n\n:returns: the button values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.RumbleType"}], "tooltip": "Get the joystick rumble.\n\n:param type: the rumble to read\n\n:returns: the rumble value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}], "tooltip": "Updates joystick data so that new values are visible to the user program.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "notifyNewData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the axis count of this device.\n\n:param count: the new axis count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Set the type of an axis.\n\n:param axis: the axis\n:param type: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the button count of this device.\n\n:param count: the new button count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the circle button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setCircleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the create button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setCreateButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the cross button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setCrossButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left trigger 1 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setL1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the value of the left trigger 2 axis on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setL2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left trigger 2 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setL2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the L3 (left stick) button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setL3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "name", "type": "str"}], "tooltip": "Set the name of this device.\n\n:param name: the new device name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the options button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setOptionsButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of a given POV.\n\n:param pov: the POV to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of the default POV (port 0).\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the POV count of this device.\n\n:param count: the new POV count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the PlayStation button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setPSButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right trigger 1 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setR1Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the value of the right trigger 2 axis on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setR2Axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right trigger 2 button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setR2Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the R3 (right stick) button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setR3Button"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set the value of a given axis.\n\n:param axis: the axis to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "button", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a given button.\n\n:param button: the button to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the square button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setSquareButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the touchpad button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setTouchpadButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pS5ControllerSim", "type": "wpilib.simulation.PS5ControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the triangle button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PS5ControllerSim", "FUNC": "setTriangleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPS5ControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.HIDType"}], "tooltip": "Set the type of this device.\n\n:param type: the new device type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHIDType"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.PWMSim.ts b/src/blocks/generated/class_wpilib.simulation.PWMSim.ts
index c50069f4..163e5080 100644
--- a/src/blocks/generated/class_wpilib.simulation.PWMSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.PWMSim.ts
@@ -11,28 +11,28 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 22 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.PWMSim", "args": [{"name": "pwm", "type": "wpilib._wpilib.PWM"}], "tooltip": "Constructs from a PWM object.\n\n:param pwm: PWM to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.PWMSim", "args": [{"name": "motorctrl", "type": "wpilib._wpilib.PWMMotorController"}], "tooltip": "Constructs from a PWMMotorController object.\n\n:param motorctrl: PWMMotorController to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.PWMSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from a PWM channel number.\n\n:param channel: Channel number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}], "tooltip": "Check whether the PWM has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}], "tooltip": "Get the PWM period scale.\n\n:returns: the PWM period scale", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "getPeriodScale"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}], "tooltip": "Get the PWM position.\n\n:returns: the PWM position (0.0 to 1.0)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "getPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}], "tooltip": "Get the PWM pulse microsecond value.\n\n:returns: the PWM pulse microsecond value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "getPulseMicrosecond"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}], "tooltip": "Get the PWM speed.\n\n:returns: the PWM speed (-1.0 to 1.0)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "getSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}], "tooltip": "Check whether the PWM is zero latched.\n\n:returns: true if zero latched", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "getZeroLatch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PWM is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PWM period scale changes.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "registerPeriodScaleCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PWM position changes.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "registerPositionCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PWM pulse microsecond value changes.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "registerPulseMicrosecondCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PWM speed changes.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "registerSpeedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PWM zero latch state changes.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "registerZeroLatchCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}], "tooltip": "Reset all simulation data.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether the PWM has been initialized.\n\n:param initialized: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}, {"name": "periodScale", "type": "int"}], "tooltip": "Set the PWM period scale.\n\n:param periodScale: the PWM period scale", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "setPeriodScale"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}, {"name": "position", "type": "float"}], "tooltip": "Set the PWM position.\n\n:param position: the PWM position (0.0 to 1.0)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "setPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}, {"name": "microsecondPulseTime", "type": "int"}], "tooltip": "Set the PWM pulse microsecond value.\n\n:param microsecondPulseTime: the PWM pulse microsecond value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "setPulseMicrosecond"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}, {"name": "speed", "type": "float"}], "tooltip": "Set the PWM speed.\n\n:param speed: the PWM speed (-1.0 to 1.0)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "setSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation._simulation.PWMSim"}, {"name": "zeroLatch", "type": "bool"}], "tooltip": "Define whether the PWM has been zero latched.\n\n:param zeroLatch: true to indicate zero latched", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "setZeroLatch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.PWMSim", "args": [{"name": "pwm", "type": "wpilib.PWM"}], "tooltip": "Constructs from a PWM object.\n\n:param pwm: PWM to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWM"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.PWMSim", "args": [{"name": "motorctrl", "type": "wpilib.PWMMotorController"}], "tooltip": "Constructs from a PWMMotorController object.\n\n:param motorctrl: PWMMotorController to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMMotorController"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPWMSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.PWMSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from a PWM channel number.\n\n:param channel: Channel number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}], "tooltip": "Check whether the PWM has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}], "tooltip": "Get the PWM period scale.\n\n:returns: the PWM period scale", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "getPeriodScale"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}], "tooltip": "Get the PWM position.\n\n:returns: the PWM position (0.0 to 1.0)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "getPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}], "tooltip": "Get the PWM pulse microsecond value.\n\n:returns: the PWM pulse microsecond value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "getPulseMicrosecond"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}], "tooltip": "Get the PWM speed.\n\n:returns: the PWM speed (-1.0 to 1.0)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "getSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}], "tooltip": "Check whether the PWM is zero latched.\n\n:returns: true if zero latched", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "getZeroLatch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PWM is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PWM period scale changes.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "registerPeriodScaleCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PWM position changes.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "registerPositionCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PWM pulse microsecond value changes.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "registerPulseMicrosecondCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PWM speed changes.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "registerSpeedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PWM zero latch state changes.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "registerZeroLatchCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}], "tooltip": "Reset all simulation data.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether the PWM has been initialized.\n\n:param initialized: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}, {"name": "periodScale", "type": "int"}], "tooltip": "Set the PWM period scale.\n\n:param periodScale: the PWM period scale", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "setPeriodScale"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}, {"name": "position", "type": "float"}], "tooltip": "Set the PWM position.\n\n:param position: the PWM position (0.0 to 1.0)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "setPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}, {"name": "microsecondPulseTime", "type": "int"}], "tooltip": "Set the PWM pulse microsecond value.\n\n:param microsecondPulseTime: the PWM pulse microsecond value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "setPulseMicrosecond"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}, {"name": "speed", "type": "float"}], "tooltip": "Set the PWM speed.\n\n:param speed: the PWM speed (-1.0 to 1.0)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "setSpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pWMSim", "type": "wpilib.simulation.PWMSim"}, {"name": "zeroLatch", "type": "bool"}], "tooltip": "Define whether the PWM has been zero latched.\n\n:param zeroLatch: true to indicate zero latched", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PWMSim", "FUNC": "setZeroLatch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPWMSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.PneumaticsBaseSim.ts b/src/blocks/generated/class_wpilib.simulation.PneumaticsBaseSim.ts
index fc29006b..6112049d 100644
--- a/src/blocks/generated/class_wpilib.simulation.PneumaticsBaseSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.PneumaticsBaseSim.ts
@@ -11,27 +11,27 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 21 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.PneumaticsBaseSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Constructs a PneumaticsBaseSim with the given index.\n\n:param index: The index.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.PneumaticsBaseSim", "args": [{"name": "module", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "Constructs a PneumaticsBaseSim for the given module.\n\n:param module: The module.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}], "tooltip": "Get the current value of all solenoid outputs.\n\n:returns: the solenoid outputs (1 bit per output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getAllSolenoidOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}], "tooltip": "Read the compressor current.\n\n:returns: the current of the compressor connected to this module", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}], "tooltip": "Check if the compressor is on.\n\n:returns: true if the compressor is active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getCompressorOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.PneumaticsBaseSim", "args": [{"name": "module", "type": "int"}, {"name": "type", "type": "wpilib._wpilib.PneumaticsModuleType"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getForType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}], "tooltip": "Check whether the PCM/PH has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}], "tooltip": "Check the value of the pressure switch.\n\n:returns: the pressure switch value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "channel", "type": "int"}], "tooltip": "Check the solenoid output on a specific channel.\n\n:param channel: the channel to check\n\n:returns: the solenoid output", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getSolenoidOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the compressor current changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the :class:`.CallbackStore` object associated with this callback.\n Save a reference to this object; it being deconstructed cancels the\n callback.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "registerCompressorCurrentCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the compressor activates.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the :class:`.CallbackStore` object associated with this callback.\n Save a reference to this object; it being deconstructed cancels the\n callback.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "registerCompressorOnCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PCM/PH is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the :class:`.CallbackStore` object associated with this callback.\n Save a reference to this object; it being deconstructed cancels the\n callback.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the pressure switch value changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the initial\n value\n\n:returns: the :class:`.CallbackStore` object associated with this callback.\n Save a reference to this object; it being deconstructed cancels the\n callback.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "registerPressureSwitchCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "channel", "type": "int"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the solenoid output on a channel\nchanges.\n\n:param channel: the channel to monitor\n:param callback: the callback\n:param initialNotify: should the callback be run with the initial value\n\n:returns: the :class:`.CallbackStore` object associated with this callback.\n Save a reference to this object; it being deconstructed cancels the\n callback.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "registerSolenoidOutputCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}], "tooltip": "Reset all simulation data for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "outputs", "type": "int"}], "tooltip": "Change all of the solenoid outputs.\n\n:param outputs: the new solenoid outputs (1 bit per output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "setAllSolenoidOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "compressorCurrent", "type": "float"}], "tooltip": "Set the compressor current.\n\n:param compressorCurrent: the new compressor current", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "setCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "compressorOn", "type": "bool"}], "tooltip": "Set whether the compressor is active.\n\n:param compressorOn: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "setCompressorOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether the PCM/PH has been initialized.\n\n:param initialized: true for initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "pressureSwitch", "type": "bool"}], "tooltip": "Set the value of the pressure switch.\n\n:param pressureSwitch: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "setPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "channel", "type": "int"}, {"name": "solenoidOutput", "type": "bool"}], "tooltip": "Change the solenoid output on a specific channel.\n\n:param channel: the channel to check\n:param solenoidOutput: the new solenoid output", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "setSolenoidOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.PneumaticsBaseSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Constructs a PneumaticsBaseSim with the given index.\n\n:param index: The index.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.PneumaticsBaseSim", "args": [{"name": "module", "type": "wpilib.PneumaticsBase"}], "tooltip": "Constructs a PneumaticsBaseSim for the given module.\n\n:param module: The module.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}], "tooltip": "Get the current value of all solenoid outputs.\n\n:returns: the solenoid outputs (1 bit per output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getAllSolenoidOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}], "tooltip": "Read the compressor current.\n\n:returns: the current of the compressor connected to this module", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}], "tooltip": "Check if the compressor is on.\n\n:returns: true if the compressor is active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getCompressorOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.PneumaticsBaseSim", "args": [{"name": "module", "type": "int"}, {"name": "type", "type": "wpilib.PneumaticsModuleType"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getForType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}], "tooltip": "Check whether the PCM/PH has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}], "tooltip": "Check the value of the pressure switch.\n\n:returns: the pressure switch value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "channel", "type": "int"}], "tooltip": "Check the solenoid output on a specific channel.\n\n:param channel: the channel to check\n\n:returns: the solenoid output", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "getSolenoidOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the compressor current changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the :class:`.CallbackStore` object associated with this callback.\n Save a reference to this object; it being deconstructed cancels the\n callback.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "registerCompressorCurrentCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the compressor activates.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the :class:`.CallbackStore` object associated with this callback.\n Save a reference to this object; it being deconstructed cancels the\n callback.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "registerCompressorOnCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PCM/PH is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the :class:`.CallbackStore` object associated with this callback.\n Save a reference to this object; it being deconstructed cancels the\n callback.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the pressure switch value changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the initial\n value\n\n:returns: the :class:`.CallbackStore` object associated with this callback.\n Save a reference to this object; it being deconstructed cancels the\n callback.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "registerPressureSwitchCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "channel", "type": "int"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the solenoid output on a channel\nchanges.\n\n:param channel: the channel to monitor\n:param callback: the callback\n:param initialNotify: should the callback be run with the initial value\n\n:returns: the :class:`.CallbackStore` object associated with this callback.\n Save a reference to this object; it being deconstructed cancels the\n callback.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "registerSolenoidOutputCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}], "tooltip": "Reset all simulation data for this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "outputs", "type": "int"}], "tooltip": "Change all of the solenoid outputs.\n\n:param outputs: the new solenoid outputs (1 bit per output)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "setAllSolenoidOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "compressorCurrent", "type": "float"}], "tooltip": "Set the compressor current.\n\n:param compressorCurrent: the new compressor current", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "setCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "compressorOn", "type": "bool"}], "tooltip": "Set whether the compressor is active.\n\n:param compressorOn: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "setCompressorOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether the PCM/PH has been initialized.\n\n:param initialized: true for initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "pressureSwitch", "type": "bool"}], "tooltip": "Set the value of the pressure switch.\n\n:param pressureSwitch: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "setPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pneumaticsBaseSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "channel", "type": "int"}, {"name": "solenoidOutput", "type": "bool"}], "tooltip": "Change the solenoid output on a specific channel.\n\n:param channel: the channel to check\n:param solenoidOutput: the new solenoid output", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PneumaticsBaseSim", "FUNC": "setSolenoidOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.PowerDistributionSim.ts b/src/blocks/generated/class_wpilib.simulation.PowerDistributionSim.ts
index 2d58aef5..d800614d 100644
--- a/src/blocks/generated/class_wpilib.simulation.PowerDistributionSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.PowerDistributionSim.ts
@@ -11,23 +11,23 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 17 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistributionSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.PowerDistributionSim", "args": [{"name": "module", "type": "int"}], "tooltip": "Constructs from a PowerDistribution module number (CAN ID).\n\n:param module: module number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistributionSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.PowerDistributionSim", "args": [{"name": "pdp", "type": "wpilib._wpilib.PowerDistribution"}], "tooltip": "Constructs from a PowerDistribution object.\n\n:param pdp: PowerDistribution to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}, {"name": "length", "type": "int"}], "tooltip": "Read the current of all of the PowerDistribution channels.\n\n:param currents: output array; set to the current in each channel. The\n array must be big enough to hold all the PowerDistribution\n channels\n:param length: length of output array", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "getAllCurrents"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}, {"name": "channel", "type": "int"}], "tooltip": "Read the current in one of the PowerDistribution channels.\n\n:param channel: the channel to check\n\n:returns: the current in the given channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "getCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}], "tooltip": "Check whether the PowerDistribution has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}], "tooltip": "Check the temperature of the PowerDistribution.\n\n:returns: the PowerDistribution temperature", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "getTemperature"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}], "tooltip": "Check the PowerDistribution voltage.\n\n:returns: the PowerDistribution voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}, {"name": "channel", "type": "int"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the current of a specific channel\nchanges.\n\n:param channel: the channel\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "registerCurrentCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PowerDistribution is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the PowerDistribution temperature\nchanges.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "registerTemperatureCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the PowerDistribution voltage\nchanges.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "registerVoltageCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}], "tooltip": "Reset all PowerDistribution simulation data.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}, {"name": "currents", "type": "float"}, {"name": "length", "type": "int"}], "tooltip": "Change the current in all of the PowerDistribution channels.\n\n:param currents: array containing the current values for each channel. The\n array must be big enough to hold all the PowerDistribution\n channels\n:param length: length of array", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "setAllCurrents"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}, {"name": "channel", "type": "int"}, {"name": "current", "type": "float"}], "tooltip": "Change the current in the given channel.\n\n:param channel: the channel to edit\n:param current: the new current for the channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "setCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether the PowerDistribution has been initialized.\n\n:param initialized: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}, {"name": "temperature", "type": "float"}], "tooltip": "Define the PowerDistribution temperature.\n\n:param temperature: the new PowerDistribution temperature", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "setTemperature"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation._simulation.PowerDistributionSim"}, {"name": "voltage", "type": "float"}], "tooltip": "Set the PowerDistribution voltage.\n\n:param voltage: the new PowerDistribution voltage", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistributionSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.PowerDistributionSim", "args": [{"name": "module", "type": "int"}], "tooltip": "Constructs from a PowerDistribution module number (CAN ID).\n\n:param module: module number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPowerDistributionSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.PowerDistributionSim", "args": [{"name": "pdp", "type": "wpilib.PowerDistribution"}], "tooltip": "Constructs from a PowerDistribution object.\n\n:param pdp: PowerDistribution to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistribution"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}, {"name": "length", "type": "int"}], "tooltip": "Read the current of all of the PowerDistribution channels.\n\n:param currents: output array; set to the current in each channel. The\n array must be big enough to hold all the PowerDistribution\n channels\n:param length: length of output array", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "getAllCurrents"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}, {"name": "channel", "type": "int"}], "tooltip": "Read the current in one of the PowerDistribution channels.\n\n:param channel: the channel to check\n\n:returns: the current in the given channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "getCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}], "tooltip": "Check whether the PowerDistribution has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}], "tooltip": "Check the temperature of the PowerDistribution.\n\n:returns: the PowerDistribution temperature", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "getTemperature"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}], "tooltip": "Check the PowerDistribution voltage.\n\n:returns: the PowerDistribution voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "getVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}, {"name": "channel", "type": "int"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the current of a specific channel\nchanges.\n\n:param channel: the channel\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "registerCurrentCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the PowerDistribution is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the PowerDistribution temperature\nchanges.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "registerTemperatureCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the PowerDistribution voltage\nchanges.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "registerVoltageCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}], "tooltip": "Reset all PowerDistribution simulation data.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}, {"name": "currents", "type": "float"}, {"name": "length", "type": "int"}], "tooltip": "Change the current in all of the PowerDistribution channels.\n\n:param currents: array containing the current values for each channel. The\n array must be big enough to hold all the PowerDistribution\n channels\n:param length: length of array", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "setAllCurrents"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}, {"name": "channel", "type": "int"}, {"name": "current", "type": "float"}], "tooltip": "Change the current in the given channel.\n\n:param channel: the channel to edit\n:param current: the new current for the channel", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "setCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}, {"name": "initialized", "type": "bool"}], "tooltip": "Define whether the PowerDistribution has been initialized.\n\n:param initialized: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}, {"name": "temperature", "type": "float"}], "tooltip": "Define the PowerDistribution temperature.\n\n:param temperature: the new PowerDistribution temperature", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "setTemperature"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "powerDistributionSim", "type": "wpilib.simulation.PowerDistributionSim"}, {"name": "voltage", "type": "float"}], "tooltip": "Set the PowerDistribution voltage.\n\n:param voltage: the new PowerDistribution voltage", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.PowerDistributionSim", "FUNC": "setVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.REVPHSim.ts b/src/blocks/generated/class_wpilib.simulation.REVPHSim.ts
index d501aaf6..f6fba27f 100644
--- a/src/blocks/generated/class_wpilib.simulation.REVPHSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.REVPHSim.ts
@@ -11,31 +11,31 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 25 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.REVPHSim", "args": [], "tooltip": "Constructs with the default PCM module number (CAN ID).", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.REVPHSim", "args": [{"name": "module", "type": "int"}], "tooltip": "Constructs from a PCM module number (CAN ID).\n\n:param module: module number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.REVPHSim", "args": [{"name": "pneumatics", "type": "wpilib._wpilib.PneumaticsBase"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getAllSolenoidOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}], "tooltip": "Check whether the closed loop compressor control is active.\n\n:returns: compressor config type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getCompressorConfigType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}], "tooltip": "Check if the compressor is on.\n\n:returns: true if the compressor is active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getCompressorOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.PneumaticsBaseSim", "args": [{"name": "module", "type": "int"}, {"name": "type", "type": "wpilib._wpilib.PneumaticsModuleType"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getForType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getSolenoidOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the closed loop state changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "registerCompressorConfigTypeCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "registerCompressorCurrentCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "registerCompressorOnCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "registerPressureSwitchCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "channel", "type": "int"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "registerSolenoidOutputCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "outputs", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setAllSolenoidOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "compressorConfigType", "type": "int"}], "tooltip": "Turn on/off the closed loop control of the compressor.\n\n:param compressorConfigType: compressor config type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setCompressorConfigType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "compressorCurrent", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "compressorOn", "type": "bool"}], "tooltip": "Set whether the compressor is active.\n\n:param compressorOn: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setCompressorOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "solenoidInitialized", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "pressureSwitch", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation._simulation.REVPHSim"}, {"name": "channel", "type": "int"}, {"name": "solenoidOutput", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setSolenoidOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.REVPHSim", "args": [], "tooltip": "Constructs with the default PCM module number (CAN ID).", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.REVPHSim", "args": [{"name": "module", "type": "int"}], "tooltip": "Constructs from a PCM module number (CAN ID).\n\n:param module: module number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.REVPHSim", "args": [{"name": "pneumatics", "type": "wpilib.PneumaticsBase"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getAllSolenoidOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}], "tooltip": "Check whether the closed loop compressor control is active.\n\n:returns: compressor config type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getCompressorConfigType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}], "tooltip": "Check if the compressor is on.\n\n:returns: true if the compressor is active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getCompressorOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.PneumaticsBaseSim", "args": [{"name": "module", "type": "int"}, {"name": "type", "type": "wpilib.PneumaticsModuleType"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getForType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "getSolenoidOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the closed loop state changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "registerCompressorConfigTypeCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "registerCompressorCurrentCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "registerCompressorOnCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "registerInitializedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "registerPressureSwitchCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "channel", "type": "int"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "registerSolenoidOutputCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "outputs", "type": "int"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setAllSolenoidOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "compressorConfigType", "type": "int"}], "tooltip": "Turn on/off the closed loop control of the compressor.\n\n:param compressorConfigType: compressor config type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setCompressorConfigType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "compressorCurrent", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setCompressorCurrent"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "compressorOn", "type": "bool"}], "tooltip": "Set whether the compressor is active.\n\n:param compressorOn: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setCompressorOn"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "solenoidInitialized", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setInitialized"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "pressureSwitch", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setPressureSwitch"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "rEVPHSim", "type": "wpilib.simulation.REVPHSim"}, {"name": "channel", "type": "int"}, {"name": "solenoidOutput", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.REVPHSim", "FUNC": "setSolenoidOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.RelaySim.ts b/src/blocks/generated/class_wpilib.simulation.RelaySim.ts
index eb48b77f..ec4a3dd9 100644
--- a/src/blocks/generated/class_wpilib.simulation.RelaySim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.RelaySim.ts
@@ -11,21 +11,21 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 15 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRelaySim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.RelaySim", "args": [{"name": "relay", "type": "wpilib._wpilib.Relay"}], "tooltip": "Constructs from a Relay object.\n\n:param relay: Relay to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRelaySim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.RelaySim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from a relay channel number.\n\n:param channel: Channel number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}], "tooltip": "Check whether the forward direction is active.\n\n:returns: true if active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "getForward"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}], "tooltip": "Check whether the forward direction has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "getInitializedForward"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}], "tooltip": "Check whether the reverse direction has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "getInitializedReverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}], "tooltip": "Check whether the reverse direction is active.\n\n:returns: true if active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "getReverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the forward direction changes state.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "registerForwardCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the forward direction is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "registerInitializedForwardCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the reverse direction is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "registerInitializedReverseCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the reverse direction changes state.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "registerReverseCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}], "tooltip": "Reset all simulation data.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}, {"name": "forward", "type": "bool"}], "tooltip": "Set whether the forward direction is active.\n\n:param forward: true to make active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "setForward"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}, {"name": "initializedForward", "type": "bool"}], "tooltip": "Define whether the forward direction has been initialized.\n\n:param initializedForward: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "setInitializedForward"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}, {"name": "initializedReverse", "type": "bool"}], "tooltip": "Define whether the reverse direction has been initialized.\n\n:param initializedReverse: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "setInitializedReverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relaySim", "type": "wpilib.simulation._simulation.RelaySim"}, {"name": "reverse", "type": "bool"}], "tooltip": "Set whether the reverse direction is active.\n\n:param reverse: true to make active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "setReverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRelaySim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.RelaySim", "args": [{"name": "relay", "type": "wpilib.Relay"}], "tooltip": "Constructs from a Relay object.\n\n:param relay: Relay to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelay"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRelaySim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.RelaySim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructs from a relay channel number.\n\n:param channel: Channel number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}], "tooltip": "Check whether the forward direction is active.\n\n:returns: true if active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "getForward"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}], "tooltip": "Check whether the forward direction has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "getInitializedForward"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}], "tooltip": "Check whether the reverse direction has been initialized.\n\n:returns: true if initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "getInitializedReverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}], "tooltip": "Check whether the reverse direction is active.\n\n:returns: true if active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "getReverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the forward direction changes state.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "registerForwardCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the forward direction is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "registerInitializedForwardCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the reverse direction is initialized.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "registerInitializedReverseCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the reverse direction changes state.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "registerReverseCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}], "tooltip": "Reset all simulation data.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}, {"name": "forward", "type": "bool"}], "tooltip": "Set whether the forward direction is active.\n\n:param forward: true to make active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "setForward"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}, {"name": "initializedForward", "type": "bool"}], "tooltip": "Define whether the forward direction has been initialized.\n\n:param initializedForward: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "setInitializedForward"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}, {"name": "initializedReverse", "type": "bool"}], "tooltip": "Define whether the reverse direction has been initialized.\n\n:param initializedReverse: whether this object is initialized", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "setInitializedReverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "relaySim", "type": "wpilib.simulation.RelaySim"}, {"name": "reverse", "type": "bool"}], "tooltip": "Set whether the reverse direction is active.\n\n:param reverse: true to make active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RelaySim", "FUNC": "setReverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRelaySim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.RoboRioSim.ts b/src/blocks/generated/class_wpilib.simulation.RoboRioSim.ts
index 3edde73e..7bd4b3bb 100644
--- a/src/blocks/generated/class_wpilib.simulation.RoboRioSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.RoboRioSim.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 63 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRoboRioSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.RoboRioSim", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRoboRioSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.RoboRioSim", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.volts", "args": [], "tooltip": "Measure the brownout voltage.\n\n:returns: the brownout voltage", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "getBrownoutVoltage"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.celsius", "args": [], "tooltip": "Get the cpu temp.\n\n:returns: the cpu temp.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "getCPUTemp"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "str", "args": [], "tooltip": "Get the comments.\n\n:returns: The comments.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "getComments"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Query the state of the FPGA button.\n\n:returns: the FPGA button state", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "getFPGAButton"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRadioLEDState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib._wpilib.RadioLEDState", "args": [], "tooltip": "Get the state of the radio led.\n\n:returns: The state of the radio led.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "getRadioLEDState"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRadioLEDState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.RadioLEDState", "args": [], "tooltip": "Get the state of the radio led.\n\n:returns: The state of the radio led.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "getRadioLEDState"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "str", "args": [], "tooltip": "Get the serial number.\n\n:returns: The serial number.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "getSerialNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "int", "args": [], "tooltip": "Get the team number.\n\n:returns: the team number.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "getTeamNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "bool", "args": [], "tooltip": "Get the 3.3V rail active state.\n\n:returns: true if the 3.3V rail is active", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "getUserActive3V3"}},
@@ -33,31 +33,31 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.volts", "args": [], "tooltip": "Measure the 6V rail voltage.\n\n:returns: the 6V rail voltage", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "getUserVoltage6V"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.amperes", "args": [], "tooltip": "Measure the Vin current.\n\n:returns: the Vin current", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "getVInCurrent"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.volts", "args": [], "tooltip": "Measure the Vin voltage.\n\n:returns: the Vin voltage", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "getVInVoltage"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the brownout voltage changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerBrownoutVoltageCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the cpu temp changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerCPUTempCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the FPGA button state changes.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerFPGAButtonCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Radio led state changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerRadioLEDStateCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the team number changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerTeamNumberCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 3.3V rail active state changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserActive3V3Callback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 5V rail active state changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserActive5VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 6V rail active state changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserActive6VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 3.3V rail current changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserCurrent3V3Callback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 5V rail current changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserCurrent5VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 6V rail current changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserCurrent6VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 3.3V rail number of faults\nchanges.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserFaults3V3Callback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 5V rail number of faults\nchanges.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserFaults5VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 6V rail number of faults\nchanges.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserFaults6VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 3.3V rail voltage changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserVoltage3V3Callback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 5V rail voltage changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserVoltage5VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 6V rail voltage changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserVoltage6VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Vin current changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerVInCurrentCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Vin voltage changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerVInVoltageCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the brownout voltage changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerBrownoutVoltageCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the cpu temp changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerCPUTempCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the FPGA button state changes.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerFPGAButtonCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Radio led state changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerRadioLEDStateCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the team number changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerTeamNumberCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 3.3V rail active state changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserActive3V3Callback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 5V rail active state changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserActive5VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 6V rail active state changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserActive6VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 3.3V rail current changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserCurrent3V3Callback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 5V rail current changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserCurrent5VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 6V rail current changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserCurrent6VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 3.3V rail number of faults\nchanges.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserFaults3V3Callback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 5V rail number of faults\nchanges.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserFaults5VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 6V rail number of faults\nchanges.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserFaults6VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 3.3V rail voltage changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserVoltage3V3Callback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 5V rail voltage changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserVoltage5VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the 6V rail voltage changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerUserVoltage6VCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Vin current changes.\n\n:param callback: the callback\n:param initialNotify: whether the callback should be called with the\n initial value\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerVInCurrentCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Vin voltage changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "registerVInVoltageCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Reset all simulation data.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "resetData"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "brownoutVoltage", "type": "wpimath.units.volts"}], "tooltip": "Define the brownout voltage.\n\n:param brownoutVoltage: the new voltage", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "setBrownoutVoltage"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "cpuTemp", "type": "wpimath.units.celsius"}], "tooltip": "Define the cpu temp.\n\n:param cpuTemp: the new cpu temp.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "setCPUTemp"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "comments", "type": "str"}], "tooltip": "Set the comments.\n\n:param comments: The comments.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "setComments"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "fPGAButton", "type": "bool"}], "tooltip": "Define the state of the FPGA button.\n\n:param fPGAButton: the new state", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "setFPGAButton"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "state", "type": "wpilib._wpilib.RadioLEDState"}], "tooltip": "Set the state of the radio led.\n\n:param state: The state of the radio led.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "setRadioLEDState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRadioLEDState"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "state", "type": "wpilib.RadioLEDState"}], "tooltip": "Set the state of the radio led.\n\n:param state: The state of the radio led.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "setRadioLEDState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRadioLEDState"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "serialNumber", "type": "str"}], "tooltip": "Set the serial number.\n\n:param serialNumber: The serial number.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "setSerialNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "teamNumber", "type": "int"}], "tooltip": "Set the team number.\n\n:param teamNumber: the new team number.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "setTeamNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "userActive3V3", "type": "bool"}], "tooltip": "Set the 3.3V rail active state.\n\n:param userActive3V3: true to make rail active", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.RoboRioSim", "FUNC": "setUserActive3V3"}},
diff --git a/src/blocks/generated/class_wpilib.simulation.SPIAccelerometerSim.ts b/src/blocks/generated/class_wpilib.simulation.SPIAccelerometerSim.ts
index 46e9df9d..7afa41b2 100644
--- a/src/blocks/generated/class_wpilib.simulation.SPIAccelerometerSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.SPIAccelerometerSim.ts
@@ -11,23 +11,23 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 17 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SPIAccelerometerSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Construct a new simulation object.\n\n:param index: the HAL index of the accelerometer", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}], "tooltip": "Check whether the accelerometer is active.\n\n:returns: true if active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "getActive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}], "tooltip": "Check the range of this accelerometer.\n\n:returns: the accelerometer range", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "getRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}], "tooltip": "Measure the X axis value.\n\n:returns: the X axis measurement", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}], "tooltip": "Measure the Y axis value.\n\n:returns: the Y axis measurement", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}], "tooltip": "Measure the Z axis value.\n\n:returns: the Z axis measurement", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when this accelerometer activates.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "registerActiveCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the range changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "registerRangeCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the X axis value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "registerXCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Y axis value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "registerYCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Z axis value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "registerZCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}], "tooltip": "Reset all simulation data of this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}, {"name": "active", "type": "bool"}], "tooltip": "Define whether this accelerometer is active.\n\n:param active: the new state", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "setActive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}, {"name": "range", "type": "int"}], "tooltip": "Change the range of this accelerometer.\n\n:param range: the new accelerometer range", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}, {"name": "x", "type": "float"}], "tooltip": "Change the X axis value of the accelerometer.\n\n:param x: the new reading of the X axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "setX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}, {"name": "y", "type": "float"}], "tooltip": "Change the Y axis value of the accelerometer.\n\n:param y: the new reading of the Y axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "setY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation._simulation.SPIAccelerometerSim"}, {"name": "z", "type": "float"}], "tooltip": "Change the Z axis value of the accelerometer.\n\n:param z: the new reading of the Z axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "setZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SPIAccelerometerSim", "args": [{"name": "index", "type": "int"}], "tooltip": "Construct a new simulation object.\n\n:param index: the HAL index of the accelerometer", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}], "tooltip": "Check whether the accelerometer is active.\n\n:returns: true if active", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "getActive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}], "tooltip": "Check the range of this accelerometer.\n\n:returns: the accelerometer range", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "getRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}], "tooltip": "Measure the X axis value.\n\n:returns: the X axis measurement", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "getX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}], "tooltip": "Measure the Y axis value.\n\n:returns: the Y axis measurement", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "getY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}], "tooltip": "Measure the Z axis value.\n\n:returns: the Z axis measurement", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "getZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when this accelerometer activates.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "registerActiveCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the range changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "registerRangeCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the X axis value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "registerXCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Y axis value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "registerYCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run whenever the Z axis value changes.\n\n:param callback: the callback\n:param initialNotify: whether to call the callback with the initial state\n\n:returns: the CallbackStore object associated with this callback", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "registerZCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}], "tooltip": "Reset all simulation data of this object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "resetData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}, {"name": "active", "type": "bool"}], "tooltip": "Define whether this accelerometer is active.\n\n:param active: the new state", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "setActive"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}, {"name": "range", "type": "int"}], "tooltip": "Change the range of this accelerometer.\n\n:param range: the new accelerometer range", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}, {"name": "x", "type": "float"}], "tooltip": "Change the X axis value of the accelerometer.\n\n:param x: the new reading of the X axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "setX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}, {"name": "y", "type": "float"}], "tooltip": "Change the Y axis value of the accelerometer.\n\n:param y: the new reading of the Y axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "setY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sPIAccelerometerSim", "type": "wpilib.simulation.SPIAccelerometerSim"}, {"name": "z", "type": "float"}], "tooltip": "Change the Z axis value of the accelerometer.\n\n:param z: the new reading of the Z axis", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SPIAccelerometerSim", "FUNC": "setZ"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIAccelerometerSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.SendableChooserSim.ts b/src/blocks/generated/class_wpilib.simulation.SendableChooserSim.ts
index ca209d4e..f5eb475e 100644
--- a/src/blocks/generated/class_wpilib.simulation.SendableChooserSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.SendableChooserSim.ts
@@ -11,9 +11,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 3 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySendableChooserSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SendableChooserSim", "args": [{"name": "path", "type": "str"}], "tooltip": "Constructs a SendableChooserSim.\n\n:param path: The path where the SendableChooser is published.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SendableChooserSim"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySendableChooserSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SendableChooserSim", "args": [{"name": "inst", "type": "ntcore._ntcore.NetworkTableInstance"}, {"name": "path", "type": "str"}], "tooltip": "Constructs a SendableChooserSim.\n\n:param inst: The NetworkTables instance.\n:param path: The path where the SendableChooser is published.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SendableChooserSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTableInstance"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableChooserSim", "type": "wpilib.simulation._simulation.SendableChooserSim"}, {"name": "option", "type": "str"}], "tooltip": "Set the selected option.\n\n:param option: The option.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SendableChooserSim", "FUNC": "setSelected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableChooserSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySendableChooserSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SendableChooserSim", "args": [{"name": "path", "type": "str"}], "tooltip": "Constructs a SendableChooserSim.\n\n:param path: The path where the SendableChooser is published.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SendableChooserSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySendableChooserSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SendableChooserSim", "args": [{"name": "inst", "type": "ntcore.NetworkTableInstance"}, {"name": "path", "type": "str"}], "tooltip": "Constructs a SendableChooserSim.\n\n:param inst: The NetworkTables instance.\n:param path: The path where the SendableChooser is published.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SendableChooserSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNetworkTableInstance"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sendableChooserSim", "type": "wpilib.simulation.SendableChooserSim"}, {"name": "option", "type": "str"}], "tooltip": "Set the selected option.\n\n:param option: The option.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SendableChooserSim", "FUNC": "setSelected"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableChooserSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.SharpIRSim.ts b/src/blocks/generated/class_wpilib.simulation.SharpIRSim.ts
index 7dfaef20..182e30a5 100644
--- a/src/blocks/generated/class_wpilib.simulation.SharpIRSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.SharpIRSim.ts
@@ -11,9 +11,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 3 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIRSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SharpIRSim", "args": [{"name": "sharpIR", "type": "wpilib._wpilib.SharpIR"}], "tooltip": "Constructor.\n\n:param sharpIR: The real sensor to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SharpIRSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySharpIR"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIRSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SharpIRSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor.\n\n:param channel: Analog channel for this sensor", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SharpIRSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sharpIRSim", "type": "wpilib.simulation._simulation.SharpIRSim"}, {"name": "rng", "type": "wpimath.units.centimeters"}], "tooltip": "Set the range returned by the distance sensor.\n\n:param rng: range of the target returned by the sensor", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SharpIRSim", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySharpIRSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIRSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SharpIRSim", "args": [{"name": "sharpIR", "type": "wpilib.SharpIR"}], "tooltip": "Constructor.\n\n:param sharpIR: The real sensor to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SharpIRSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySharpIR"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySharpIRSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SharpIRSim", "args": [{"name": "channel", "type": "int"}], "tooltip": "Constructor.\n\n:param channel: Analog channel for this sensor", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SharpIRSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sharpIRSim", "type": "wpilib.simulation.SharpIRSim"}, {"name": "rng", "type": "wpimath.units.centimeters"}], "tooltip": "Set the range returned by the distance sensor.\n\n:param rng: range of the target returned by the sensor", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SharpIRSim", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySharpIRSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.SimDeviceSim.ts b/src/blocks/generated/class_wpilib.simulation.SimDeviceSim.ts
index 125e200f..32446566 100644
--- a/src/blocks/generated/class_wpilib.simulation.SimDeviceSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.SimDeviceSim.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 15 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDeviceSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SimDeviceSim", "args": [{"name": "name", "type": "str"}], "tooltip": "Constructs a SimDeviceSim.\n\n:param name: name of the SimDevice", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDeviceSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SimDeviceSim", "args": [{"name": "name", "type": "str"}, {"name": "index", "type": "int"}], "tooltip": "Constructs a SimDeviceSim.\n\n:param name: name of the SimDevice\n:param index: device index number to append to name", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDeviceSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SimDeviceSim", "args": [{"name": "name", "type": "str"}, {"name": "index", "type": "int"}, {"name": "channel", "type": "int"}], "tooltip": "Constructs a SimDeviceSim.\n\n:param name: name of the SimDevice\n:param index: device index number to append to name\n:param channel: device channel number to append to name", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDeviceSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SimDeviceSim", "args": [{"name": "handle", "type": "int"}], "tooltip": "Constructs a SimDeviceSim.\n\n:param handle: the low level handle for the corresponding SimDevice.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDeviceSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SimDeviceSim", "args": [{"name": "name", "type": "str"}], "tooltip": "Constructs a SimDeviceSim.\n\n:param name: name of the SimDevice", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDeviceSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SimDeviceSim", "args": [{"name": "name", "type": "str"}, {"name": "index", "type": "int"}], "tooltip": "Constructs a SimDeviceSim.\n\n:param name: name of the SimDevice\n:param index: device index number to append to name", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDeviceSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SimDeviceSim", "args": [{"name": "name", "type": "str"}, {"name": "index", "type": "int"}, {"name": "channel", "type": "int"}], "tooltip": "Constructs a SimDeviceSim.\n\n:param name: name of the SimDevice\n:param index: device index number to append to name\n:param channel: device channel number to append to name", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDeviceSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SimDeviceSim", "args": [{"name": "handle", "type": "int"}], "tooltip": "Constructs a SimDeviceSim.\n\n:param handle: the low level handle for the corresponding SimDevice.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[str]", "args": [{"name": "prefix", "type": "str"}], "tooltip": "Returns a list of available device names", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "enumerateDevices"}, "inputs": {"ARG0": {"shadow": {"type": "text", "fields": {"TEXT": ""}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[str, bool]]", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation._simulation.SimDeviceSim"}], "tooltip": "Returns a list of (name, readonly) tuples of available values for this device", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "enumerateValues"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimBoolean"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.SimBoolean", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation._simulation.SimDeviceSim"}, {"name": "name", "type": "str"}], "tooltip": "Retrieves an object that allows you to interact with simulated values\nrepresented as a boolean.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDouble"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.SimDouble", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation._simulation.SimDeviceSim"}, {"name": "name", "type": "str"}], "tooltip": "Retrieves an object that allows you to interact with simulated values\nrepresented as a double.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimEnum"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.SimEnum", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation._simulation.SimDeviceSim"}, {"name": "name", "type": "str"}], "tooltip": "Get the property object with the given name.\n\n:param name: the property name\n\n:returns: the property object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getEnum"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[str]", "args": [{"name": "val", "type": "hal._wpiHal.SimEnum"}], "tooltip": "Get all options for the given enum.\n\n:param val: the enum\n\n:returns: names of the different values for that enum", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getEnumOptions"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimEnum"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimInt"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.SimInt", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation._simulation.SimDeviceSim"}, {"name": "name", "type": "str"}], "tooltip": "Retrieves an object that allows you to interact with simulated values\nrepresented as an integer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getInt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimLong"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.SimLong", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation._simulation.SimDeviceSim"}, {"name": "name", "type": "str"}], "tooltip": "Retrieves an object that allows you to interact with simulated values\nrepresented as a long.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getLong"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation._simulation.SimDeviceSim"}], "tooltip": "Get the name of this object.\n\n:returns: name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimValue"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal._wpiHal.SimValue", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation._simulation.SimDeviceSim"}, {"name": "name", "type": "str"}], "tooltip": "Provides a readonly mechanism to retrieve all types of device values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[str, bool]]", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation.SimDeviceSim"}], "tooltip": "Returns a list of (name, readonly) tuples of available values for this device", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "enumerateValues"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimBoolean"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.SimBoolean", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation.SimDeviceSim"}, {"name": "name", "type": "str"}], "tooltip": "Retrieves an object that allows you to interact with simulated values\nrepresented as a boolean.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getBoolean"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimDouble"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.SimDouble", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation.SimDeviceSim"}, {"name": "name", "type": "str"}], "tooltip": "Retrieves an object that allows you to interact with simulated values\nrepresented as a double.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getDouble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimEnum"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.SimEnum", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation.SimDeviceSim"}, {"name": "name", "type": "str"}], "tooltip": "Get the property object with the given name.\n\n:param name: the property name\n\n:returns: the property object", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getEnum"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[str]", "args": [{"name": "val", "type": "hal.SimEnum"}], "tooltip": "Get all options for the given enum.\n\n:param val: the enum\n\n:returns: names of the different values for that enum", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getEnumOptions"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimEnum"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimInt"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.SimInt", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation.SimDeviceSim"}, {"name": "name", "type": "str"}], "tooltip": "Retrieves an object that allows you to interact with simulated values\nrepresented as an integer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getInt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimLong"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.SimLong", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation.SimDeviceSim"}, {"name": "name", "type": "str"}], "tooltip": "Retrieves an object that allows you to interact with simulated values\nrepresented as a long.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getLong"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "str", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation.SimDeviceSim"}], "tooltip": "Get the name of this object.\n\n:returns: name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimValue"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "hal.SimValue", "args": [{"name": "simDeviceSim", "type": "wpilib.simulation.SimDeviceSim"}, {"name": "name", "type": "str"}], "tooltip": "Provides a readonly mechanism to retrieve all types of device values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "getValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDeviceSim"}}}}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [], "tooltip": "Reset all SimDevice data.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SimDeviceSim", "FUNC": "resetData"}},
];
diff --git a/src/blocks/generated/class_wpilib.simulation.SingleJointedArmSim.ts b/src/blocks/generated/class_wpilib.simulation.SingleJointedArmSim.ts
index 827c982c..ceec5706 100644
--- a/src/blocks/generated/class_wpilib.simulation.SingleJointedArmSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.SingleJointedArmSim.ts
@@ -11,27 +11,27 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 21 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SingleJointedArmSim", "args": [{"name": "system", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "gearbox", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "gearing", "type": "float"}, {"name": "armLength", "type": "wpimath.units.meters"}, {"name": "minAngle", "type": "wpimath.units.radians"}, {"name": "maxAngle", "type": "wpimath.units.radians"}, {"name": "simulateGravity", "type": "bool"}, {"name": "startingAngle", "type": "wpimath.units.radians"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Creates a simulated arm mechanism.\n\n:param system: The system representing this arm. This system can\n be created with\n LinearSystemId::SingleJointedArmSystem().\n:param gearbox: The type and number of motors on the arm gearbox.\n:param gearing: The gear ratio of the arm (numbers greater than 1\n represent reductions).\n:param armLength: The length of the arm.\n:param minAngle: The minimum angle that the arm is capable of.\n:param maxAngle: The maximum angle that the arm is capable of.\n:param simulateGravity: Whether gravity should be simulated or not.\n:param startingAngle: The initial position of the arm.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SingleJointedArmSim", "args": [{"name": "gearbox", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "gearing", "type": "float"}, {"name": "moi", "type": "wpimath.units.kilogram_square_meters"}, {"name": "armLength", "type": "wpimath.units.meters"}, {"name": "minAngle", "type": "wpimath.units.radians"}, {"name": "maxAngle", "type": "wpimath.units.radians"}, {"name": "simulateGravity", "type": "bool"}, {"name": "startingAngle", "type": "wpimath.units.radians"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Creates a simulated arm mechanism.\n\n:param gearbox: The type and number of motors on the arm gearbox.\n:param gearing: The gear ratio of the arm (numbers greater than 1\n represent reductions).\n:param moi: The moment of inertia of the arm. This can be\n calculated from CAD software.\n:param armLength: The length of the arm.\n:param minAngle: The minimum angle that the arm is capable of.\n:param maxAngle: The maximum angle that the arm is capable of.\n:param simulateGravity: Whether gravity should be simulated or not.\n:param startingAngle: The initial position of the arm.\n:param measurementStdDevs: The standard deviation of the measurement noise.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SingleJointedArmSim", "args": [{"name": "system", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "gearbox", "type": "wpimath.system.plant.DCMotor"}, {"name": "gearing", "type": "float"}, {"name": "armLength", "type": "wpimath.units.meters"}, {"name": "minAngle", "type": "wpimath.units.radians"}, {"name": "maxAngle", "type": "wpimath.units.radians"}, {"name": "simulateGravity", "type": "bool"}, {"name": "startingAngle", "type": "wpimath.units.radians"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Creates a simulated arm mechanism.\n\n:param system: The system representing this arm. This system can\n be created with\n LinearSystemId::SingleJointedArmSystem().\n:param gearbox: The type and number of motors on the arm gearbox.\n:param gearing: The gear ratio of the arm (numbers greater than 1\n represent reductions).\n:param armLength: The length of the arm.\n:param minAngle: The minimum angle that the arm is capable of.\n:param maxAngle: The maximum angle that the arm is capable of.\n:param simulateGravity: Whether gravity should be simulated or not.\n:param startingAngle: The initial position of the arm.\n:param measurementStdDevs: The standard deviations of the measurements.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SingleJointedArmSim", "args": [{"name": "gearbox", "type": "wpimath.system.plant.DCMotor"}, {"name": "gearing", "type": "float"}, {"name": "moi", "type": "wpimath.units.kilogram_square_meters"}, {"name": "armLength", "type": "wpimath.units.meters"}, {"name": "minAngle", "type": "wpimath.units.radians"}, {"name": "maxAngle", "type": "wpimath.units.radians"}, {"name": "simulateGravity", "type": "bool"}, {"name": "startingAngle", "type": "wpimath.units.radians"}, {"name": "measurementStdDevs", "type": "Annotated[list[float], FixedSize(2)]"}], "tooltip": "Creates a simulated arm mechanism.\n\n:param gearbox: The type and number of motors on the arm gearbox.\n:param gearing: The gear ratio of the arm (numbers greater than 1\n represent reductions).\n:param moi: The moment of inertia of the arm. This can be\n calculated from CAD software.\n:param armLength: The length of the arm.\n:param minAngle: The minimum angle that the arm is capable of.\n:param maxAngle: The maximum angle that the arm is capable of.\n:param simulateGravity: Whether gravity should be simulated or not.\n:param startingAngle: The initial position of the arm.\n:param measurementStdDevs: The standard deviation of the measurement noise.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.units.kilogram_square_meters", "args": [{"name": "length", "type": "wpimath.units.meters"}, {"name": "mass", "type": "wpimath.units.kilograms"}], "tooltip": "Calculates a rough estimate of the moment of inertia of an arm given its\nlength and mass.\n\n:param length: The length of the arm.\n:param mass: The mass of the arm.\n\n:returns: The calculated moment of inertia.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "estimateMOI"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation._simulation.SingleJointedArmSim"}], "tooltip": "Returns the current arm angle.\n\n:returns: The current arm angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation._simulation.SingleJointedArmSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "getAngleDegrees"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation._simulation.SingleJointedArmSim"}], "tooltip": "Returns the arm current draw.\n\n:returns: The arm current draw.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "getCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation._simulation.SingleJointedArmSim"}], "tooltip": "Returns the current arm velocity.\n\n:returns: The current arm velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "getVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees_per_second", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation._simulation.SingleJointedArmSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "getVelocityDps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation._simulation.SingleJointedArmSim"}], "tooltip": "Returns whether the arm has hit the lower limit.\n\n:returns: Whether the arm has hit the lower limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "hasHitLowerLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation._simulation.SingleJointedArmSim"}], "tooltip": "Returns whether the arm has hit the upper limit.\n\n:returns: Whether the arm has hit the upper limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "hasHitUpperLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation._simulation.SingleJointedArmSim"}, {"name": "voltage", "type": "wpimath.units.volts"}], "tooltip": "Sets the input voltage for the arm.\n\n:param voltage: The input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "setInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation._simulation.SingleJointedArmSim"}, {"name": "angle", "type": "wpimath.units.radians"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Sets the arm's state. The new angle will be limited between the minimum and\nmaximum allowed limits.\n\n:param angle: The new angle.\n:param velocity: The new angular velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation._simulation.LinearSystemSim_2_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation._simulation.SingleJointedArmSim"}, {"name": "armAngle", "type": "wpimath.units.radians"}], "tooltip": "Returns whether the arm would hit the lower limit.\n\n:param armAngle: The arm height.\n\n:returns: Whether the arm would hit the lower limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "wouldHitLowerLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation._simulation.SingleJointedArmSim"}, {"name": "armAngle", "type": "wpimath.units.radians"}], "tooltip": "Returns whether the arm would hit the upper limit.\n\n:param armAngle: The arm height.\n\n:returns: Whether the arm would hit the upper limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "wouldHitUpperLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation.SingleJointedArmSim"}], "tooltip": "Returns the current arm angle.\n\n:returns: The current arm angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "getAngle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation.SingleJointedArmSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "getAngleDegrees"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation.SingleJointedArmSim"}], "tooltip": "Returns the arm current draw.\n\n:returns: The arm current draw.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "getCurrentDraw"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current input of the plant.\n\n:returns: The current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current input of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current input of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}], "tooltip": "Returns the current output of the plant.\n\n:returns: The current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}], "tooltip": "Returns an element of the current output of the plant.\n\n:param row: The row to return.\n\n:returns: An element of the current output of the plant.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation.SingleJointedArmSim"}], "tooltip": "Returns the current arm velocity.\n\n:returns: The current arm velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "getVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees_per_second", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation.SingleJointedArmSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "getVelocityDps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation.SingleJointedArmSim"}], "tooltip": "Returns whether the arm has hit the lower limit.\n\n:returns: Whether the arm has hit the lower limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "hasHitLowerLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation.SingleJointedArmSim"}], "tooltip": "Returns whether the arm has hit the upper limit.\n\n:returns: Whether the arm has hit the upper limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "hasHitUpperLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Sets the system inputs (usually voltages).\n\n:param u: The system inputs.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "row", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Sets the system inputs.\n\n:param row: The row in the input matrix to set.\n:param value: The value to set the row to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "setInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation.SingleJointedArmSim"}, {"name": "voltage", "type": "wpimath.units.volts"}], "tooltip": "Sets the input voltage for the arm.\n\n:param voltage: The input voltage.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "setInputVoltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation.SingleJointedArmSim"}, {"name": "angle", "type": "wpimath.units.radians"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Sets the arm's state. The new angle will be limited between the minimum and\nmaximum allowed limits.\n\n:param angle: The new angle.\n:param velocity: The new angular velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "setState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemSim_2_1_2", "type": "wpilib.simulation.LinearSystemSim_2_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Updates the simulation.\n\n:param dt: The time between updates.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.LinearSystemSim_2_1_2", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemSim_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation.SingleJointedArmSim"}, {"name": "armAngle", "type": "wpimath.units.radians"}], "tooltip": "Returns whether the arm would hit the lower limit.\n\n:param armAngle: The arm height.\n\n:returns: Whether the arm would hit the lower limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "wouldHitLowerLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "singleJointedArmSim", "type": "wpilib.simulation.SingleJointedArmSim"}, {"name": "armAngle", "type": "wpimath.units.radians"}], "tooltip": "Returns whether the arm would hit the upper limit.\n\n:param armAngle: The arm height.\n\n:returns: Whether the arm would hit the upper limit.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SingleJointedArmSim", "FUNC": "wouldHitUpperLimit"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySingleJointedArmSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.SolenoidSim.ts b/src/blocks/generated/class_wpilib.simulation.SolenoidSim.ts
index 6c48487b..093f55b9 100644
--- a/src/blocks/generated/class_wpilib.simulation.SolenoidSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.SolenoidSim.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoidSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SolenoidSim", "args": [{"name": "moduleSim", "type": "wpilib.simulation._simulation.PneumaticsBaseSim"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoidSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SolenoidSim", "args": [{"name": "module", "type": "int"}, {"name": "type", "type": "wpilib._wpilib.PneumaticsModuleType"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoidSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.SolenoidSim", "args": [{"name": "type", "type": "wpilib._wpilib.PneumaticsModuleType"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.PneumaticsBaseSim", "args": [{"name": "solenoidSim", "type": "wpilib.simulation._simulation.SolenoidSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim", "FUNC": "getModuleSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoidSim"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "solenoidSim", "type": "wpilib.simulation._simulation.SolenoidSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoidSim"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation._simulation.CallbackStore", "args": [{"name": "solenoidSim", "type": "wpilib.simulation._simulation.SolenoidSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the output of this solenoid has changed.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the :class:`.CallbackStore` object associated with this callback.\n Save a reference to this object; it being deconstructed cancels the\n callback.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim", "FUNC": "registerOutputCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoidSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "solenoidSim", "type": "wpilib.simulation._simulation.SolenoidSim"}, {"name": "output", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoidSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoidSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SolenoidSim", "args": [{"name": "moduleSim", "type": "wpilib.simulation.PneumaticsBaseSim"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoidSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SolenoidSim", "args": [{"name": "module", "type": "int"}, {"name": "type", "type": "wpilib.PneumaticsModuleType"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySolenoidSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.SolenoidSim", "args": [{"name": "type", "type": "wpilib.PneumaticsModuleType"}, {"name": "channel", "type": "int"}], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPneumaticsModuleType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPneumaticsBaseSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.PneumaticsBaseSim", "args": [{"name": "solenoidSim", "type": "wpilib.simulation.SolenoidSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim", "FUNC": "getModuleSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoidSim"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "solenoidSim", "type": "wpilib.simulation.SolenoidSim"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoidSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCallbackStore"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.simulation.CallbackStore", "args": [{"name": "solenoidSim", "type": "wpilib.simulation.SolenoidSim"}, {"name": "callback", "type": "Callable[[str, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback to be run when the output of this solenoid has changed.\n\n:param callback: the callback\n:param initialNotify: whether to run the callback with the initial state\n\n:returns: the :class:`.CallbackStore` object associated with this callback.\n Save a reference to this object; it being deconstructed cancels the\n callback.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim", "FUNC": "registerOutputCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoidSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "solenoidSim", "type": "wpilib.simulation.SolenoidSim"}, {"name": "output", "type": "bool"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.SolenoidSim", "FUNC": "setOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySolenoidSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.StadiaControllerSim.ts b/src/blocks/generated/class_wpilib.simulation.StadiaControllerSim.ts
index 98e0c1da..07dc2f37 100644
--- a/src/blocks/generated/class_wpilib.simulation.StadiaControllerSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.StadiaControllerSim.ts
@@ -11,41 +11,41 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 35 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStadiaControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.StadiaControllerSim", "args": [{"name": "joystick", "type": "wpilib._wpilib.StadiaController"}], "tooltip": "Constructs from a StadiaController object.\n\n:param joystick: controller to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStadiaControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.StadiaControllerSim", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs from a joystick port number.\n\n:param port: port number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "outputNumber", "type": "int"}], "tooltip": "Read the output of a button.\n\n:param outputNumber: the button number\n\n:returns: the value of the button (true = pressed)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}], "tooltip": "Get the encoded 16-bit integer that passes button values.\n\n:returns: the button values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.RumbleType"}], "tooltip": "Get the joystick rumble.\n\n:param type: the rumble to read\n\n:returns: the rumble value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}], "tooltip": "Updates joystick data so that new values are visible to the user program.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "notifyNewData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the A button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setAButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the axis count of this device.\n\n:param count: the new axis count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Set the type of an axis.\n\n:param axis: the axis\n:param type: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the B button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setBButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the button count of this device.\n\n:param count: the new button count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the ellipses button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setEllipsesButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the frame button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setFrameButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the google button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setGoogleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the hamburger button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setHamburgerButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left bumper button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setLeftBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left stick button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setLeftStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left trigger button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setLeftTriggerButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "name", "type": "str"}], "tooltip": "Set the name of this device.\n\n:param name: the new device name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of a given POV.\n\n:param pov: the POV to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of the default POV (port 0).\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the POV count of this device.\n\n:param count: the new POV count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set the value of a given axis.\n\n:param axis: the axis to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "button", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a given button.\n\n:param button: the button to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right bumper button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setRightBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right stick button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setRightStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right trigger button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setRightTriggerButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the stadia button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setStadiaButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.HIDType"}], "tooltip": "Set the type of this device.\n\n:param type: the new device type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHIDType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the X button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setXButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation._simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the Y button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setYButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStadiaControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.StadiaControllerSim", "args": [{"name": "joystick", "type": "wpilib.StadiaController"}], "tooltip": "Constructs from a StadiaController object.\n\n:param joystick: controller to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaController"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myStadiaControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.StadiaControllerSim", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs from a joystick port number.\n\n:param port: port number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "outputNumber", "type": "int"}], "tooltip": "Read the output of a button.\n\n:param outputNumber: the button number\n\n:returns: the value of the button (true = pressed)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}], "tooltip": "Get the encoded 16-bit integer that passes button values.\n\n:returns: the button values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.RumbleType"}], "tooltip": "Get the joystick rumble.\n\n:param type: the rumble to read\n\n:returns: the rumble value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}], "tooltip": "Updates joystick data so that new values are visible to the user program.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "notifyNewData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the A button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setAButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the axis count of this device.\n\n:param count: the new axis count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Set the type of an axis.\n\n:param axis: the axis\n:param type: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the B button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setBButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the button count of this device.\n\n:param count: the new button count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the ellipses button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setEllipsesButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the frame button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setFrameButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the google button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setGoogleButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the hamburger button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setHamburgerButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left bumper button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setLeftBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left stick button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setLeftStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left trigger button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setLeftTriggerButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "name", "type": "str"}], "tooltip": "Set the name of this device.\n\n:param name: the new device name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of a given POV.\n\n:param pov: the POV to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of the default POV (port 0).\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the POV count of this device.\n\n:param count: the new POV count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set the value of a given axis.\n\n:param axis: the axis to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "button", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a given button.\n\n:param button: the button to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right bumper button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setRightBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right stick button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setRightStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right trigger button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setRightTriggerButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the stadia button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setStadiaButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.HIDType"}], "tooltip": "Set the type of this device.\n\n:param type: the new device type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHIDType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the X button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setXButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "stadiaControllerSim", "type": "wpilib.simulation.StadiaControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the Y button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.StadiaControllerSim", "FUNC": "setYButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myStadiaControllerSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.UltrasonicSim.ts b/src/blocks/generated/class_wpilib.simulation.UltrasonicSim.ts
index 7390eda2..70fc59a2 100644
--- a/src/blocks/generated/class_wpilib.simulation.UltrasonicSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.UltrasonicSim.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myUltrasonicSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.UltrasonicSim", "args": [{"name": "ultrasonic", "type": "wpilib._wpilib.Ultrasonic"}], "tooltip": "Constructor.\n\n:param ultrasonic: The real ultrasonic to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.UltrasonicSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myUltrasonicSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.UltrasonicSim", "args": [{"name": "ping", "type": "int"}, {"name": "echo", "type": "int"}], "tooltip": "Constructor.\n\n:param ping: unused.\n:param echo: the ultrasonic's echo channel.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.UltrasonicSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ultrasonicSim", "type": "wpilib.simulation._simulation.UltrasonicSim"}, {"name": "range", "type": "wpimath.units.inches"}], "tooltip": "Sets the range measurement.\n\n:param range: The range.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.UltrasonicSim", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonicSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ultrasonicSim", "type": "wpilib.simulation._simulation.UltrasonicSim"}, {"name": "valid", "type": "bool"}], "tooltip": "Sets if the range measurement is valid.\n\n:param valid: True if valid", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.UltrasonicSim", "FUNC": "setRangeValid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonicSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myUltrasonicSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.UltrasonicSim", "args": [{"name": "ultrasonic", "type": "wpilib.Ultrasonic"}], "tooltip": "Constructor.\n\n:param ultrasonic: The real ultrasonic to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.UltrasonicSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonic"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myUltrasonicSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.UltrasonicSim", "args": [{"name": "ping", "type": "int"}, {"name": "echo", "type": "int"}], "tooltip": "Constructor.\n\n:param ping: unused.\n:param echo: the ultrasonic's echo channel.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.UltrasonicSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ultrasonicSim", "type": "wpilib.simulation.UltrasonicSim"}, {"name": "range", "type": "wpimath.units.inches"}], "tooltip": "Sets the range measurement.\n\n:param range: The range.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.UltrasonicSim", "FUNC": "setRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonicSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ultrasonicSim", "type": "wpilib.simulation.UltrasonicSim"}, {"name": "valid", "type": "bool"}], "tooltip": "Sets if the range measurement is valid.\n\n:param valid: True if valid", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.UltrasonicSim", "FUNC": "setRangeValid"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myUltrasonicSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.simulation.XboxControllerSim.ts b/src/blocks/generated/class_wpilib.simulation.XboxControllerSim.ts
index bb5be6ed..e5e45ebd 100644
--- a/src/blocks/generated/class_wpilib.simulation.XboxControllerSim.ts
+++ b/src/blocks/generated/class_wpilib.simulation.XboxControllerSim.ts
@@ -11,38 +11,38 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 32 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myXboxControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.XboxControllerSim", "args": [{"name": "joystick", "type": "wpilib._wpilib.XboxController"}], "tooltip": "Constructs from a XboxController object.\n\n:param joystick: controller to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myXboxControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation._simulation.XboxControllerSim", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs from a joystick port number.\n\n:param port: port number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "outputNumber", "type": "int"}], "tooltip": "Read the output of a button.\n\n:param outputNumber: the button number\n\n:returns: the value of the button (true = pressed)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}], "tooltip": "Get the encoded 16-bit integer that passes button values.\n\n:returns: the button values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.RumbleType"}], "tooltip": "Get the joystick rumble.\n\n:param type: the rumble to read\n\n:returns: the rumble value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}], "tooltip": "Updates joystick data so that new values are visible to the user program.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "notifyNewData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the A button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setAButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the axis count of this device.\n\n:param count: the new axis count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Set the type of an axis.\n\n:param axis: the axis\n:param type: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the B button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setBButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the back button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setBackButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the button count of this device.\n\n:param count: the new button count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left bumper button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setLeftBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left stick button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setLeftStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the value of the left trigger axis on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setLeftTriggerAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "name", "type": "str"}], "tooltip": "Set the name of this device.\n\n:param name: the new device name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of a given POV.\n\n:param pov: the POV to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of the default POV (port 0).\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the POV count of this device.\n\n:param count: the new POV count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set the value of a given axis.\n\n:param axis: the axis to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "button", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a given button.\n\n:param button: the button to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right bumper button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setRightBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right stick button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setRightStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the value of the right trigger axis on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setRightTriggerAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the start button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setStartButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation._simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces._interfaces.GenericHID.HIDType"}], "tooltip": "Set the type of this device.\n\n:param type: the new device type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHIDType"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the X button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setXButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation._simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the Y button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setYButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myXboxControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.XboxControllerSim", "args": [{"name": "joystick", "type": "wpilib.XboxController"}], "tooltip": "Constructs from a XboxController object.\n\n:param joystick: controller to simulate", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxController"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myXboxControllerSim"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.simulation.XboxControllerSim", "args": [{"name": "port", "type": "int"}], "tooltip": "Constructs from a joystick port number.\n\n:param port: port number", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "outputNumber", "type": "int"}], "tooltip": "Read the output of a button.\n\n:param outputNumber: the button number\n\n:returns: the value of the button (true = pressed)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "int", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}], "tooltip": "Get the encoded 16-bit integer that passes button values.\n\n:returns: the button values", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getOutputs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.RumbleType"}], "tooltip": "Get the joystick rumble.\n\n:param type: the rumble to read\n\n:returns: the rumble value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "getRumble"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRumbleType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}], "tooltip": "Updates joystick data so that new values are visible to the user program.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "notifyNewData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the A button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setAButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the axis count of this device.\n\n:param count: the new axis count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "Set the type of an axis.\n\n:param axis: the axis\n:param type: the type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setAxisType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the B button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setBButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the back button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setBackButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the button count of this device.\n\n:param count: the new button count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setButtonCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left bumper button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setLeftBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the left stick button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setLeftStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the value of the left trigger axis on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setLeftTriggerAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setLeftX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the left Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setLeftY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "name", "type": "str"}], "tooltip": "Set the name of this device.\n\n:param name: the new device name", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of a given POV.\n\n:param pov: the POV to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "value", "type": "int"}], "tooltip": "Set the value of the default POV (port 0).\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOV"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "count", "type": "int"}], "tooltip": "Set the POV count of this device.\n\n:param count: the new POV count", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setPOVCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set the value of a given axis.\n\n:param axis: the axis to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "button", "type": "int"}, {"name": "value", "type": "bool"}], "tooltip": "Set the value of a given button.\n\n:param button: the button to set\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setRawButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right bumper button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setRightBumperButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the right stick button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setRightStickButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the value of the right trigger axis on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setRightTriggerAxis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right X value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setRightX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "float"}], "tooltip": "Change the right Y value of the controller's joystick.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setRightY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the start button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setStartButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "genericHIDSim", "type": "wpilib.simulation.GenericHIDSim"}, {"name": "type", "type": "wpilib.interfaces.GenericHID.HIDType"}], "tooltip": "Set the type of this device.\n\n:param type: the new device type", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.GenericHIDSim", "FUNC": "setType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myGenericHIDSim"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHIDType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the X button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setXButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "xboxControllerSim", "type": "wpilib.simulation.XboxControllerSim"}, {"name": "value", "type": "bool"}], "tooltip": "Change the value of the Y button on the controller.\n\n:param value: the new value", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation.XboxControllerSim", "FUNC": "setYButton"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myXboxControllerSim"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.sysid.SysIdRoutineLog.MotorLog.ts b/src/blocks/generated/class_wpilib.sysid.SysIdRoutineLog.MotorLog.ts
index 86879570..d952bcda 100644
--- a/src/blocks/generated/class_wpilib.sysid.SysIdRoutineLog.MotorLog.ts
+++ b/src/blocks/generated/class_wpilib.sysid.SysIdRoutineLog.MotorLog.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "acceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Log the linear acceleration of the motor.\n\nThis is optional; SysId can perform an accurate fit without it.\n\n:param acceleration: The linear acceleration to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "acceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "acceleration", "type": "wpimath.units.turns_per_second_squared"}], "tooltip": "Log the angular acceleration of the motor.\n\nThis is optional; SysId can perform an accurate fit without it.\n\n:param acceleration: The angular acceleration to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "angularAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "position", "type": "wpimath.units.turns"}], "tooltip": "Log the angular position of the motor.\n\n:param position: The angular position to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "angularPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "velocity", "type": "wpimath.units.turns_per_second"}], "tooltip": "Log the angular velocity of the motor.\n\n:param velocity: The angular velocity to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "angularVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "current", "type": "wpimath.units.amperes"}], "tooltip": "Log the current applied to the motor.\n\nThis is optional; SysId can perform an accurate fit without it.\n\n:param current: The current to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "current"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "position", "type": "wpimath.units.meters"}], "tooltip": "Log the linear position of the motor.\n\n:param position: The linear position to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "position"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "name", "type": "str"}, {"name": "value", "type": "float"}, {"name": "unit", "type": "str"}], "tooltip": "Log a generic data value from the motor.\n\n:param name: The name of the data field being recorded.\n:param value: The numeric value of the data field.\n:param unit: The unit string of the data field.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "value"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Log the linear velocity of the motor.\n\n:param velocity: The linear velocity to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "velocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "voltage", "type": "wpimath.units.volts"}], "tooltip": "Log the voltage applied to the motor.\n\n:param voltage: The voltage to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "voltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "acceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Log the linear acceleration of the motor.\n\nThis is optional; SysId can perform an accurate fit without it.\n\n:param acceleration: The linear acceleration to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "acceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "acceleration", "type": "wpimath.units.turns_per_second_squared"}], "tooltip": "Log the angular acceleration of the motor.\n\nThis is optional; SysId can perform an accurate fit without it.\n\n:param acceleration: The angular acceleration to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "angularAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "position", "type": "wpimath.units.turns"}], "tooltip": "Log the angular position of the motor.\n\n:param position: The angular position to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "angularPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "velocity", "type": "wpimath.units.turns_per_second"}], "tooltip": "Log the angular velocity of the motor.\n\n:param velocity: The angular velocity to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "angularVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "current", "type": "wpimath.units.amperes"}], "tooltip": "Log the current applied to the motor.\n\nThis is optional; SysId can perform an accurate fit without it.\n\n:param current: The current to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "current"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "position", "type": "wpimath.units.meters"}], "tooltip": "Log the linear position of the motor.\n\n:param position: The linear position to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "position"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "name", "type": "str"}, {"name": "value", "type": "float"}, {"name": "unit", "type": "str"}], "tooltip": "Log a generic data value from the motor.\n\n:param name: The name of the data field being recorded.\n:param value: The numeric value of the data field.\n:param unit: The unit string of the data field.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "value"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Log the linear velocity of the motor.\n\n:param velocity: The linear velocity to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "velocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "motorLog", "type": "wpilib.sysid.SysIdRoutineLog.MotorLog"}, {"name": "voltage", "type": "wpimath.units.volts"}], "tooltip": "Log the voltage applied to the motor.\n\n:param voltage: The voltage to record.\n\n:returns: The motor log (for call chaining).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog.MotorLog", "FUNC": "voltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMotorLog"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpilib.sysid.SysIdRoutineLog.ts b/src/blocks/generated/class_wpilib.sysid.SysIdRoutineLog.ts
index d34603d6..0641d533 100644
--- a/src/blocks/generated/class_wpilib.sysid.SysIdRoutineLog.ts
+++ b/src/blocks/generated/class_wpilib.sysid.SysIdRoutineLog.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySysIdRoutineLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib._wpilib.sysid.SysIdRoutineLog", "args": [{"name": "logName", "type": "str"}], "tooltip": "Create a new logging utility for a SysId test routine.\n\n:param logName: The name for the test routine in the log. Should be unique\n between complete test routines (quasistatic and dynamic, forward and\n reverse). The current state of this test (e.g. \"quasistatic-forward\")\n will appear in WPILog under the \"sysid-test-state-logName\" entry.", "importModule": "wpilib.sysid"}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib._wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "sysIdRoutineLog", "type": "wpilib._wpilib.sysid.SysIdRoutineLog"}, {"name": "motorName", "type": "str"}], "tooltip": "Log data from a motor during a SysId routine.\n\n:param motorName: The name of the motor.\n\n:returns: Handle with chainable callbacks to log individual data fields.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog", "FUNC": "motor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySysIdRoutineLog"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sysIdRoutineLog", "type": "wpilib._wpilib.sysid.SysIdRoutineLog"}, {"name": "state", "type": "wpilib._wpilib.sysid.State"}], "tooltip": "Records the current state of the SysId test routine. Should be called once\nper iteration during tests with the type of the current test, and once upon\ntest end with state `none`.\n\n:param state: The current state of the SysId test routine.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog", "FUNC": "recordState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySysIdRoutineLog"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "str", "args": [{"name": "state", "type": "wpilib._wpilib.sysid.State"}], "tooltip": "", "importModule": "wpilib.sysid"}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog", "FUNC": "stateEnumToString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySysIdRoutineLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpilib.sysid.SysIdRoutineLog", "args": [{"name": "logName", "type": "str"}], "tooltip": "Create a new logging utility for a SysId test routine.\n\n:param logName: The name for the test routine in the log. Should be unique\n between complete test routines (quasistatic and dynamic, forward and\n reverse). The current state of this test (e.g. \"quasistatic-forward\")\n will appear in WPILog under the \"sysid-test-state-logName\" entry.", "importModule": "wpilib.sysid"}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMotorLog"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpilib.sysid.SysIdRoutineLog.MotorLog", "args": [{"name": "sysIdRoutineLog", "type": "wpilib.sysid.SysIdRoutineLog"}, {"name": "motorName", "type": "str"}], "tooltip": "Log data from a motor during a SysId routine.\n\n:param motorName: The name of the motor.\n\n:returns: Handle with chainable callbacks to log individual data fields.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog", "FUNC": "motor"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySysIdRoutineLog"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "sysIdRoutineLog", "type": "wpilib.sysid.SysIdRoutineLog"}, {"name": "state", "type": "wpilib.sysid.State"}], "tooltip": "Records the current state of the SysId test routine. Should be called once\nper iteration during tests with the type of the current test, and once upon\ntest end with state `none`.\n\n:param state: The current state of the SysId test routine.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog", "FUNC": "recordState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySysIdRoutineLog"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "str", "args": [{"name": "state", "type": "wpilib.sysid.State"}], "tooltip": "", "importModule": "wpilib.sysid"}, "fields": {"MODULE_OR_CLASS": "wpilib.sysid.SysIdRoutineLog", "FUNC": "stateEnumToString"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.ArmFeedforward.ts b/src/blocks/generated/class_wpimath.controller.ArmFeedforward.ts
index bec798f6..798a8c82 100644
--- a/src/blocks/generated/class_wpimath.controller.ArmFeedforward.ts
+++ b/src/blocks/generated/class_wpimath.controller.ArmFeedforward.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myArmFeedforward"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ArmFeedforward", "args": [{"name": "kS", "type": "wpimath.units.volts"}, {"name": "kG", "type": "wpimath.units.volts"}, {"name": "kV", "type": "wpimath.units.volt_seconds_per_radian"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_radian"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Creates a new ArmFeedforward with the specified gains.\n\n:param kS: The static gain, in volts.\n:param kG: The gravity gain, in volts.\n:param kV: The velocity gain, in volt seconds per radian.\n:param kA: The acceleration gain, in volt seconds\u00b2 per radian.\n:param dt: The period in seconds.\n @throws IllegalArgumentException for kv < zero.\n @throws IllegalArgumentException for ka < zero.\n @throws IllegalArgumentException for period ≤ zero.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "armFeedforward", "type": "wpimath._controls._controls.controller.ArmFeedforward"}, {"name": "currentAngle", "type": "wpimath.units.radians"}, {"name": "currentVelocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the feedforward from the gains and setpoint assuming discrete\ncontrol. Use this method when the velocity does not change.\n\n:param currentAngle: The current angle. This angle should be measured from\n the horizontal (i.e. if the provided angle is 0, the arm should be parallel\n to the floor). If your encoder does not follow this convention, an offset\n should be added.\n:param currentVelocity: The current velocity.\n\n:returns: The computed feedforward in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "armFeedforward", "type": "wpimath._controls._controls.controller.ArmFeedforward"}, {"name": "currentAngle", "type": "wpimath.units.radians"}, {"name": "currentVelocity", "type": "wpimath.units.radians_per_second"}, {"name": "nextVelocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the feedforward from the gains and setpoints assuming discrete\ncontrol.\n\n:param currentAngle: The current angle. This angle should be measured from\n the horizontal (i.e. if the provided angle is 0, the arm should be parallel\n to the floor). If your encoder does not follow this convention, an offset\n should be added.\n:param currentVelocity: The current velocity.\n:param nextVelocity: The next velocity.\n\n:returns: The computed feedforward in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_squared_per_radian", "args": [{"name": "armFeedforward", "type": "wpimath._controls._controls.controller.ArmFeedforward"}], "tooltip": "Returns the acceleration gain.\n\n:returns: The acceleration gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "getKa"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "armFeedforward", "type": "wpimath._controls._controls.controller.ArmFeedforward"}], "tooltip": "Returns the gravity gain.\n\n:returns: The gravity gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "getKg"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "armFeedforward", "type": "wpimath._controls._controls.controller.ArmFeedforward"}], "tooltip": "Returns the static gain.\n\n:returns: The static gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "getKs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_per_radian", "args": [{"name": "armFeedforward", "type": "wpimath._controls._controls.controller.ArmFeedforward"}], "tooltip": "Returns the velocity gain.\n\n:returns: The velocity gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "getKv"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second_squared", "args": [{"name": "armFeedforward", "type": "wpimath._controls._controls.controller.ArmFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "angle", "type": "wpimath.units.radians"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the maximum achievable acceleration given a maximum voltage\nsupply, a position, and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the arm.\n:param angle: The angle of the arm. This angle should be measured\n from the horizontal (i.e. if the provided angle is 0,\n the arm should be parallel to the floor). If your\n encoder does not follow this convention, an offset\n should be added.\n:param velocity: The velocity of the arm.\n\n:returns: The maximum possible acceleration at the given velocity and angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "maxAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "armFeedforward", "type": "wpimath._controls._controls.controller.ArmFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "angle", "type": "wpimath.units.radians"}, {"name": "acceleration", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Calculates the maximum achievable velocity given a maximum voltage supply,\na position, and an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the arm.\n:param angle: The angle of the arm. This angle should be measured\n from the horizontal (i.e. if the provided angle is 0,\n the arm should be parallel to the floor). If your\n encoder does not follow this convention, an offset\n should be added.\n:param acceleration: The acceleration of the arm.\n\n:returns: The maximum possible velocity at the given acceleration and angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "maxAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second_squared", "args": [{"name": "armFeedforward", "type": "wpimath._controls._controls.controller.ArmFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "angle", "type": "wpimath.units.radians"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the minimum achievable acceleration given a maximum voltage\nsupply, a position, and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the arm.\n:param angle: The angle of the arm. This angle should be measured\n from the horizontal (i.e. if the provided angle is 0,\n the arm should be parallel to the floor). If your\n encoder does not follow this convention, an offset\n should be added.\n:param velocity: The velocity of the arm.\n\n:returns: The minimum possible acceleration at the given velocity and angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "minAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "armFeedforward", "type": "wpimath._controls._controls.controller.ArmFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "angle", "type": "wpimath.units.radians"}, {"name": "acceleration", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Calculates the minimum achievable velocity given a maximum voltage supply,\na position, and an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the arm.\n:param angle: The angle of the arm. This angle should be measured\n from the horizontal (i.e. if the provided angle is 0,\n the arm should be parallel to the floor). If your\n encoder does not follow this convention, an offset\n should be added.\n:param acceleration: The acceleration of the arm.\n\n:returns: The minimum possible velocity at the given acceleration and angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "minAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myArmFeedforward"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ArmFeedforward", "args": [{"name": "kS", "type": "wpimath.units.volts"}, {"name": "kG", "type": "wpimath.units.volts"}, {"name": "kV", "type": "wpimath.units.volt_seconds_per_radian"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_radian"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Creates a new ArmFeedforward with the specified gains.\n\n:param kS: The static gain, in volts.\n:param kG: The gravity gain, in volts.\n:param kV: The velocity gain, in volt seconds per radian.\n:param kA: The acceleration gain, in volt seconds\u00b2 per radian.\n:param dt: The period in seconds.\n @throws IllegalArgumentException for kv < zero.\n @throws IllegalArgumentException for ka < zero.\n @throws IllegalArgumentException for period ≤ zero.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "armFeedforward", "type": "wpimath.controller.ArmFeedforward"}, {"name": "currentAngle", "type": "wpimath.units.radians"}, {"name": "currentVelocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the feedforward from the gains and setpoint assuming discrete\ncontrol. Use this method when the velocity does not change.\n\n:param currentAngle: The current angle. This angle should be measured from\n the horizontal (i.e. if the provided angle is 0, the arm should be parallel\n to the floor). If your encoder does not follow this convention, an offset\n should be added.\n:param currentVelocity: The current velocity.\n\n:returns: The computed feedforward in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "armFeedforward", "type": "wpimath.controller.ArmFeedforward"}, {"name": "currentAngle", "type": "wpimath.units.radians"}, {"name": "currentVelocity", "type": "wpimath.units.radians_per_second"}, {"name": "nextVelocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the feedforward from the gains and setpoints assuming discrete\ncontrol.\n\n:param currentAngle: The current angle. This angle should be measured from\n the horizontal (i.e. if the provided angle is 0, the arm should be parallel\n to the floor). If your encoder does not follow this convention, an offset\n should be added.\n:param currentVelocity: The current velocity.\n:param nextVelocity: The next velocity.\n\n:returns: The computed feedforward in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_squared_per_radian", "args": [{"name": "armFeedforward", "type": "wpimath.controller.ArmFeedforward"}], "tooltip": "Returns the acceleration gain.\n\n:returns: The acceleration gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "getKa"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "armFeedforward", "type": "wpimath.controller.ArmFeedforward"}], "tooltip": "Returns the gravity gain.\n\n:returns: The gravity gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "getKg"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "armFeedforward", "type": "wpimath.controller.ArmFeedforward"}], "tooltip": "Returns the static gain.\n\n:returns: The static gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "getKs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_per_radian", "args": [{"name": "armFeedforward", "type": "wpimath.controller.ArmFeedforward"}], "tooltip": "Returns the velocity gain.\n\n:returns: The velocity gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "getKv"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second_squared", "args": [{"name": "armFeedforward", "type": "wpimath.controller.ArmFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "angle", "type": "wpimath.units.radians"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the maximum achievable acceleration given a maximum voltage\nsupply, a position, and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the arm.\n:param angle: The angle of the arm. This angle should be measured\n from the horizontal (i.e. if the provided angle is 0,\n the arm should be parallel to the floor). If your\n encoder does not follow this convention, an offset\n should be added.\n:param velocity: The velocity of the arm.\n\n:returns: The maximum possible acceleration at the given velocity and angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "maxAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "armFeedforward", "type": "wpimath.controller.ArmFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "angle", "type": "wpimath.units.radians"}, {"name": "acceleration", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Calculates the maximum achievable velocity given a maximum voltage supply,\na position, and an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the arm.\n:param angle: The angle of the arm. This angle should be measured\n from the horizontal (i.e. if the provided angle is 0,\n the arm should be parallel to the floor). If your\n encoder does not follow this convention, an offset\n should be added.\n:param acceleration: The acceleration of the arm.\n\n:returns: The maximum possible velocity at the given acceleration and angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "maxAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second_squared", "args": [{"name": "armFeedforward", "type": "wpimath.controller.ArmFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "angle", "type": "wpimath.units.radians"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the minimum achievable acceleration given a maximum voltage\nsupply, a position, and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the arm.\n:param angle: The angle of the arm. This angle should be measured\n from the horizontal (i.e. if the provided angle is 0,\n the arm should be parallel to the floor). If your\n encoder does not follow this convention, an offset\n should be added.\n:param velocity: The velocity of the arm.\n\n:returns: The minimum possible acceleration at the given velocity and angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "minAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "armFeedforward", "type": "wpimath.controller.ArmFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "angle", "type": "wpimath.units.radians"}, {"name": "acceleration", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Calculates the minimum achievable velocity given a maximum voltage supply,\na position, and an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the arm.\n:param angle: The angle of the arm. This angle should be measured\n from the horizontal (i.e. if the provided angle is 0,\n the arm should be parallel to the floor). If your\n encoder does not follow this convention, an offset\n should be added.\n:param acceleration: The acceleration of the arm.\n\n:returns: The minimum possible velocity at the given acceleration and angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ArmFeedforward", "FUNC": "minAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myArmFeedforward"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.BangBangController.ts b/src/blocks/generated/class_wpimath.controller.BangBangController.ts
index 125253b0..33e0aa5e 100644
--- a/src/blocks/generated/class_wpimath.controller.BangBangController.ts
+++ b/src/blocks/generated/class_wpimath.controller.BangBangController.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBangBangController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.BangBangController", "args": [{"name": "tolerance", "type": "float"}], "tooltip": "Creates a new bang-bang controller.\n\nAlways ensure that your motor controllers are set to \"coast\" before\nattempting to control them with a bang-bang controller.\n\n:param tolerance: Tolerance for atSetpoint.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "bangBangController", "type": "wpimath._controls._controls.controller.BangBangController"}], "tooltip": "Returns true if the error is within the tolerance of the setpoint.\n\n:returns: Whether the error is within the acceptable bounds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "atSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "bangBangController", "type": "wpimath._controls._controls.controller.BangBangController"}, {"name": "measurement", "type": "float"}, {"name": "setpoint", "type": "float"}], "tooltip": "Returns the calculated control output.\n\nAlways ensure that your motor controllers are set to \"coast\" before\nattempting to control them with a bang-bang controller.\n\n:param measurement: The most recent measurement of the process variable.\n:param setpoint: The setpoint for the process variable.\n\n:returns: The calculated motor output (0 or 1).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "bangBangController", "type": "wpimath._controls._controls.controller.BangBangController"}, {"name": "measurement", "type": "float"}], "tooltip": "Returns the calculated control output.\n\n:param measurement: The most recent measurement of the process variable.\n\n:returns: The calculated motor output (0 or 1).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "bangBangController", "type": "wpimath._controls._controls.controller.BangBangController"}], "tooltip": "Returns the current error.\n\n:returns: The current error.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "getError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "bangBangController", "type": "wpimath._controls._controls.controller.BangBangController"}], "tooltip": "Returns the current measurement of the process variable.\n\n:returns: The current measurement of the process variable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "getMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "bangBangController", "type": "wpimath._controls._controls.controller.BangBangController"}], "tooltip": "Returns the current setpoint of the bang-bang controller.\n\n:returns: The current setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "getSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "bangBangController", "type": "wpimath._controls._controls.controller.BangBangController"}], "tooltip": "Returns the current tolerance of the controller.\n\n:returns: The current tolerance.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "getTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "bangBangController", "type": "wpimath._controls._controls.controller.BangBangController"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "bangBangController", "type": "wpimath._controls._controls.controller.BangBangController"}, {"name": "setpoint", "type": "float"}], "tooltip": "Sets the setpoint for the bang-bang controller.\n\n:param setpoint: The desired setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "setSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "bangBangController", "type": "wpimath._controls._controls.controller.BangBangController"}, {"name": "tolerance", "type": "float"}], "tooltip": "Sets the error within which AtSetpoint will return true.\n\n:param tolerance: Position error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myBangBangController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.BangBangController", "args": [{"name": "tolerance", "type": "float"}], "tooltip": "Creates a new bang-bang controller.\n\nAlways ensure that your motor controllers are set to \"coast\" before\nattempting to control them with a bang-bang controller.\n\n:param tolerance: Tolerance for atSetpoint.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "bangBangController", "type": "wpimath.controller.BangBangController"}], "tooltip": "Returns true if the error is within the tolerance of the setpoint.\n\n:returns: Whether the error is within the acceptable bounds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "atSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "bangBangController", "type": "wpimath.controller.BangBangController"}, {"name": "measurement", "type": "float"}, {"name": "setpoint", "type": "float"}], "tooltip": "Returns the calculated control output.\n\nAlways ensure that your motor controllers are set to \"coast\" before\nattempting to control them with a bang-bang controller.\n\n:param measurement: The most recent measurement of the process variable.\n:param setpoint: The setpoint for the process variable.\n\n:returns: The calculated motor output (0 or 1).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "bangBangController", "type": "wpimath.controller.BangBangController"}, {"name": "measurement", "type": "float"}], "tooltip": "Returns the calculated control output.\n\n:param measurement: The most recent measurement of the process variable.\n\n:returns: The calculated motor output (0 or 1).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "bangBangController", "type": "wpimath.controller.BangBangController"}], "tooltip": "Returns the current error.\n\n:returns: The current error.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "getError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "bangBangController", "type": "wpimath.controller.BangBangController"}], "tooltip": "Returns the current measurement of the process variable.\n\n:returns: The current measurement of the process variable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "getMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "bangBangController", "type": "wpimath.controller.BangBangController"}], "tooltip": "Returns the current setpoint of the bang-bang controller.\n\n:returns: The current setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "getSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "bangBangController", "type": "wpimath.controller.BangBangController"}], "tooltip": "Returns the current tolerance of the controller.\n\n:returns: The current tolerance.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "getTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "bangBangController", "type": "wpimath.controller.BangBangController"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "bangBangController", "type": "wpimath.controller.BangBangController"}, {"name": "setpoint", "type": "float"}], "tooltip": "Sets the setpoint for the bang-bang controller.\n\n:param setpoint: The desired setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "setSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "bangBangController", "type": "wpimath.controller.BangBangController"}, {"name": "tolerance", "type": "float"}], "tooltip": "Sets the error within which AtSetpoint will return true.\n\n:param tolerance: Position error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.BangBangController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myBangBangController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.ControlAffinePlantInversionFeedforward_1_1.ts b/src/blocks/generated/class_wpimath.controller.ControlAffinePlantInversionFeedforward_1_1.ts
index 3f38b925..8683741e 100644
--- a/src/blocks/generated/class_wpimath.controller.ControlAffinePlantInversionFeedforward_1_1.ts
+++ b/src/blocks/generated/class_wpimath.controller.ControlAffinePlantInversionFeedforward_1_1.ts
@@ -11,16 +11,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 10 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_1_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with given model dynamics as a function\nof state and input.\n\n:param f: A vector-valued function of x, the state, and\n u, the input, that returns the derivative of\n the state vector. HAS to be control-affine\n (of the form f(x) + Bu).\n:param dt: The timestep between calls of calculate().", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_1_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with given model dynamics as a function of state,\nand the plant's B matrix(continuous input matrix).\n\n:param f: A vector-valued function of x, the state,\n that returns the derivative of the state vector.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: The timestep between calls of calculate().", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_1_1"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_1_1"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_1_1"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_1_1"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_1_1"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_1_1"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with given model dynamics as a function\nof state and input.\n\n:param f: A vector-valued function of x, the state, and\n u, the input, that returns the derivative of\n the state vector. HAS to be control-affine\n (of the form f(x) + Bu).\n:param dt: The timestep between calls of calculate().", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with given model dynamics as a function of state,\nand the plant's B matrix(continuous input matrix).\n\n:param f: A vector-valued function of x, the state,\n that returns the derivative of the state vector.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: The timestep between calls of calculate().", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "controlAffinePlantInversionFeedforward_1_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_1_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.ControlAffinePlantInversionFeedforward_2_1.ts b/src/blocks/generated/class_wpimath.controller.ControlAffinePlantInversionFeedforward_2_1.ts
index 8dc309de..b7e88ac8 100644
--- a/src/blocks/generated/class_wpimath.controller.ControlAffinePlantInversionFeedforward_2_1.ts
+++ b/src/blocks/generated/class_wpimath.controller.ControlAffinePlantInversionFeedforward_2_1.ts
@@ -11,16 +11,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 10 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with given model dynamics as a function\nof state and input.\n\n:param f: A vector-valued function of x, the state, and\n u, the input, that returns the derivative of\n the state vector. HAS to be control-affine\n (of the form f(x) + Bu).\n:param dt: The timestep between calls of calculate().", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with given model dynamics as a function of state,\nand the plant's B matrix(continuous input matrix).\n\n:param f: A vector-valued function of x, the state,\n that returns the derivative of the state vector.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: The timestep between calls of calculate().", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_1"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_1"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_1"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_1"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_1"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_1"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with given model dynamics as a function\nof state and input.\n\n:param f: A vector-valued function of x, the state, and\n u, the input, that returns the derivative of\n the state vector. HAS to be control-affine\n (of the form f(x) + Bu).\n:param dt: The timestep between calls of calculate().", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with given model dynamics as a function of state,\nand the plant's B matrix(continuous input matrix).\n\n:param f: A vector-valued function of x, the state,\n that returns the derivative of the state vector.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: The timestep between calls of calculate().", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "controlAffinePlantInversionFeedforward_2_1", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.ControlAffinePlantInversionFeedforward_2_2.ts b/src/blocks/generated/class_wpimath.controller.ControlAffinePlantInversionFeedforward_2_2.ts
index d4de2870..23fd2369 100644
--- a/src/blocks/generated/class_wpimath.controller.ControlAffinePlantInversionFeedforward_2_2.ts
+++ b/src/blocks/generated/class_wpimath.controller.ControlAffinePlantInversionFeedforward_2_2.ts
@@ -11,16 +11,16 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 10 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_2", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with given model dynamics as a function\nof state and input.\n\n:param f: A vector-valued function of x, the state, and\n u, the input, that returns the derivative of\n the state vector. HAS to be control-affine\n (of the form f(x) + Bu).\n:param dt: The timestep between calls of calculate().", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_2", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with given model dynamics as a function of state,\nand the plant's B matrix(continuous input matrix).\n\n:param f: A vector-valued function of x, the state,\n that returns the derivative of the state vector.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: The timestep between calls of calculate().", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_2"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_2"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_2"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_2"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_2"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_2"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.ControlAffinePlantInversionFeedforward_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with given model dynamics as a function\nof state and input.\n\n:param f: A vector-valued function of x, the state, and\n u, the input, that returns the derivative of\n the state vector. HAS to be control-affine\n (of the form f(x) + Bu).\n:param dt: The timestep between calls of calculate().", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with given model dynamics as a function of state,\nand the plant's B matrix(continuous input matrix).\n\n:param f: A vector-valued function of x, the state,\n that returns the derivative of the state vector.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: The timestep between calls of calculate().", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "controlAffinePlantInversionFeedforward_2_2", "type": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ControlAffinePlantInversionFeedforward_2_2", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlAffinePlantInversionFeedforward_2_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.DifferentialDriveAccelerationLimiter.ts b/src/blocks/generated/class_wpimath.controller.DifferentialDriveAccelerationLimiter.ts
index 575b19de..ce4260fa 100644
--- a/src/blocks/generated/class_wpimath.controller.DifferentialDriveAccelerationLimiter.ts
+++ b/src/blocks/generated/class_wpimath.controller.DifferentialDriveAccelerationLimiter.ts
@@ -11,9 +11,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 3 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveAccelerationLimiter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.DifferentialDriveAccelerationLimiter", "args": [{"name": "system", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "trackwidth", "type": "wpimath.units.meters"}, {"name": "maxLinearAccel", "type": "wpimath.units.meters_per_second_squared"}, {"name": "maxAngularAccel", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Constructs a DifferentialDriveAccelerationLimiter.\n\n:param system: The differential drive dynamics.\n:param trackwidth: The distance between the differential drive's left and\n right wheels.\n:param maxLinearAccel: The maximum linear acceleration.\n:param maxAngularAccel: The maximum angular acceleration.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.DifferentialDriveAccelerationLimiter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveAccelerationLimiter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.DifferentialDriveAccelerationLimiter", "args": [{"name": "system", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "trackwidth", "type": "wpimath.units.meters"}, {"name": "minLinearAccel", "type": "wpimath.units.meters_per_second_squared"}, {"name": "maxLinearAccel", "type": "wpimath.units.meters_per_second_squared"}, {"name": "maxAngularAccel", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Constructs a DifferentialDriveAccelerationLimiter.\n\n:param system: The differential drive dynamics.\n:param trackwidth: The distance between the differential drive's left and\n right wheels.\n:param minLinearAccel: The minimum (most negative) linear acceleration.\n:param maxLinearAccel: The maximum (most positive) linear acceleration.\n:param maxAngularAccel: The maximum angular acceleration.\n @throws std::invalid_argument if minimum linear acceleration is greater\n than maximum linear acceleration", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.DifferentialDriveAccelerationLimiter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelVoltages"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.controller.DifferentialDriveWheelVoltages", "args": [{"name": "differentialDriveAccelerationLimiter", "type": "wpimath._controls._controls.controller.DifferentialDriveAccelerationLimiter"}, {"name": "leftVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "rightVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "leftVoltage", "type": "wpimath.units.volts"}, {"name": "rightVoltage", "type": "wpimath.units.volts"}], "tooltip": "Returns the next voltage pair subject to acceleration constraints.\n\n:param leftVelocity: The left wheel velocity.\n:param rightVelocity: The right wheel velocity.\n:param leftVoltage: The unconstrained left motor voltage.\n:param rightVoltage: The unconstrained right motor voltage.\n\n:returns: The constrained wheel voltages.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.DifferentialDriveAccelerationLimiter", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveAccelerationLimiter"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveAccelerationLimiter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.DifferentialDriveAccelerationLimiter", "args": [{"name": "system", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "trackwidth", "type": "wpimath.units.meters"}, {"name": "maxLinearAccel", "type": "wpimath.units.meters_per_second_squared"}, {"name": "maxAngularAccel", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Constructs a DifferentialDriveAccelerationLimiter.\n\n:param system: The differential drive dynamics.\n:param trackwidth: The distance between the differential drive's left and\n right wheels.\n:param maxLinearAccel: The maximum linear acceleration.\n:param maxAngularAccel: The maximum angular acceleration.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.DifferentialDriveAccelerationLimiter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveAccelerationLimiter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.DifferentialDriveAccelerationLimiter", "args": [{"name": "system", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "trackwidth", "type": "wpimath.units.meters"}, {"name": "minLinearAccel", "type": "wpimath.units.meters_per_second_squared"}, {"name": "maxLinearAccel", "type": "wpimath.units.meters_per_second_squared"}, {"name": "maxAngularAccel", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Constructs a DifferentialDriveAccelerationLimiter.\n\n:param system: The differential drive dynamics.\n:param trackwidth: The distance between the differential drive's left and\n right wheels.\n:param minLinearAccel: The minimum (most negative) linear acceleration.\n:param maxLinearAccel: The maximum (most positive) linear acceleration.\n:param maxAngularAccel: The maximum angular acceleration.\n @throws std::invalid_argument if minimum linear acceleration is greater\n than maximum linear acceleration", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.DifferentialDriveAccelerationLimiter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelVoltages"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.controller.DifferentialDriveWheelVoltages", "args": [{"name": "differentialDriveAccelerationLimiter", "type": "wpimath.controller.DifferentialDriveAccelerationLimiter"}, {"name": "leftVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "rightVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "leftVoltage", "type": "wpimath.units.volts"}, {"name": "rightVoltage", "type": "wpimath.units.volts"}], "tooltip": "Returns the next voltage pair subject to acceleration constraints.\n\n:param leftVelocity: The left wheel velocity.\n:param rightVelocity: The right wheel velocity.\n:param leftVoltage: The unconstrained left motor voltage.\n:param rightVoltage: The unconstrained right motor voltage.\n\n:returns: The constrained wheel voltages.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.DifferentialDriveAccelerationLimiter", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveAccelerationLimiter"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.DifferentialDriveWheelVoltages.ts b/src/blocks/generated/class_wpimath.controller.DifferentialDriveWheelVoltages.ts
index a7fda25e..eace084e 100644
--- a/src/blocks/generated/class_wpimath.controller.DifferentialDriveWheelVoltages.ts
+++ b/src/blocks/generated/class_wpimath.controller.DifferentialDriveWheelVoltages.ts
@@ -19,7 +19,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.controller.DifferentialDriveWheelVoltages", "varType": "wpimath.units.volts", "importModule": "", "selfLabel": "differentialDriveWheelVoltages", "selfType": "wpimath.controller.DifferentialDriveWheelVoltages"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.DifferentialDriveWheelVoltages", "VAR": "left"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelVoltages"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.controller.DifferentialDriveWheelVoltages", "varType": "wpimath.units.volts", "importModule": "", "selfLabel": "differentialDriveWheelVoltages", "selfType": "wpimath.controller.DifferentialDriveWheelVoltages"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.DifferentialDriveWheelVoltages", "VAR": "right"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelVoltages"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.controller.DifferentialDriveWheelVoltages", "varType": "wpimath.units.volts", "importModule": "", "selfLabel": "differentialDriveWheelVoltages", "selfType": "wpimath.controller.DifferentialDriveWheelVoltages"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.DifferentialDriveWheelVoltages", "VAR": "right"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelVoltages"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelVoltages"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.DifferentialDriveWheelVoltages", "args": [{"name": "left", "type": "wpimath.units.volts"}, {"name": "right", "type": "wpimath.units.volts"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.DifferentialDriveWheelVoltages"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelVoltages"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.DifferentialDriveWheelVoltages", "args": [{"name": "left", "type": "wpimath.units.volts"}, {"name": "right", "type": "wpimath.units.volts"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.DifferentialDriveWheelVoltages"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.ElevatorFeedforward.ts b/src/blocks/generated/class_wpimath.controller.ElevatorFeedforward.ts
index b8a00216..96a99f1d 100644
--- a/src/blocks/generated/class_wpimath.controller.ElevatorFeedforward.ts
+++ b/src/blocks/generated/class_wpimath.controller.ElevatorFeedforward.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myElevatorFeedforward"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ElevatorFeedforward", "args": [{"name": "kS", "type": "wpimath.units.volts"}, {"name": "kG", "type": "wpimath.units.volts"}, {"name": "kV", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_meter"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Creates a new ElevatorFeedforward with the specified gains.\n\n:param kS: The static gain, in volts.\n:param kG: The gravity gain, in volts.\n:param kV: The velocity gain, in volt seconds per distance.\n:param kA: The acceleration gain, in volt seconds\u00b2 per distance.\n:param dt: The period in seconds.\n @throws IllegalArgumentException for kv < zero.\n @throws IllegalArgumentException for ka < zero.\n @throws IllegalArgumentException for period ≤ zero.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "elevatorFeedforward", "type": "wpimath._controls._controls.controller.ElevatorFeedforward"}, {"name": "currentVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the feedforward from the gains and setpoint assuming discrete\ncontrol. Use this method when the setpoint does not change.\n\n:param currentVelocity: The velocity setpoint.\n\n:returns: The computed feedforward, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "elevatorFeedforward", "type": "wpimath._controls._controls.controller.ElevatorFeedforward"}, {"name": "currentVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "nextVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the feedforward from the gains and setpoints assuming discrete\ncontrol.\n\nNote this method is inaccurate when the velocity crosses 0.\n\n:param currentVelocity: The current velocity setpoint.\n:param nextVelocity: The next velocity setpoint.\n\n:returns: The computed feedforward, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_squared_per_meter", "args": [{"name": "elevatorFeedforward", "type": "wpimath._controls._controls.controller.ElevatorFeedforward"}], "tooltip": "Returns the acceleration gain.\n\n:returns: The acceleration gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "getKa"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "elevatorFeedforward", "type": "wpimath._controls._controls.controller.ElevatorFeedforward"}], "tooltip": "Returns the gravity gain.\n\n:returns: The gravity gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "getKg"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "elevatorFeedforward", "type": "wpimath._controls._controls.controller.ElevatorFeedforward"}], "tooltip": "Returns the static gain.\n\n:returns: The static gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "getKs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_per_meter", "args": [{"name": "elevatorFeedforward", "type": "wpimath._controls._controls.controller.ElevatorFeedforward"}], "tooltip": "Returns the velocity gain.\n\n:returns: The velocity gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "getKv"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "elevatorFeedforward", "type": "wpimath._controls._controls.controller.ElevatorFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the maximum achievable acceleration given a maximum voltage\nsupply and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the elevator.\n:param velocity: The velocity of the elevator.\n\n:returns: The maximum possible acceleration at the given velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "maxAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "elevatorFeedforward", "type": "wpimath._controls._controls.controller.ElevatorFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "acceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Calculates the maximum achievable velocity given a maximum voltage supply\nand an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the elevator.\n:param acceleration: The acceleration of the elevator.\n\n:returns: The maximum possible velocity at the given acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "maxAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "elevatorFeedforward", "type": "wpimath._controls._controls.controller.ElevatorFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the minimum achievable acceleration given a maximum voltage\nsupply and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the elevator.\n:param velocity: The velocity of the elevator.\n\n:returns: The minimum possible acceleration at the given velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "minAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "elevatorFeedforward", "type": "wpimath._controls._controls.controller.ElevatorFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "acceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Calculates the minimum achievable velocity given a maximum voltage supply\nand an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the elevator.\n:param acceleration: The acceleration of the elevator.\n\n:returns: The minimum possible velocity at the given acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "minAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myElevatorFeedforward"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ElevatorFeedforward", "args": [{"name": "kS", "type": "wpimath.units.volts"}, {"name": "kG", "type": "wpimath.units.volts"}, {"name": "kV", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_meter"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Creates a new ElevatorFeedforward with the specified gains.\n\n:param kS: The static gain, in volts.\n:param kG: The gravity gain, in volts.\n:param kV: The velocity gain, in volt seconds per distance.\n:param kA: The acceleration gain, in volt seconds\u00b2 per distance.\n:param dt: The period in seconds.\n @throws IllegalArgumentException for kv < zero.\n @throws IllegalArgumentException for ka < zero.\n @throws IllegalArgumentException for period ≤ zero.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "elevatorFeedforward", "type": "wpimath.controller.ElevatorFeedforward"}, {"name": "currentVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the feedforward from the gains and setpoint assuming discrete\ncontrol. Use this method when the setpoint does not change.\n\n:param currentVelocity: The velocity setpoint.\n\n:returns: The computed feedforward, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "elevatorFeedforward", "type": "wpimath.controller.ElevatorFeedforward"}, {"name": "currentVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "nextVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the feedforward from the gains and setpoints assuming discrete\ncontrol.\n\nNote this method is inaccurate when the velocity crosses 0.\n\n:param currentVelocity: The current velocity setpoint.\n:param nextVelocity: The next velocity setpoint.\n\n:returns: The computed feedforward, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_squared_per_meter", "args": [{"name": "elevatorFeedforward", "type": "wpimath.controller.ElevatorFeedforward"}], "tooltip": "Returns the acceleration gain.\n\n:returns: The acceleration gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "getKa"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "elevatorFeedforward", "type": "wpimath.controller.ElevatorFeedforward"}], "tooltip": "Returns the gravity gain.\n\n:returns: The gravity gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "getKg"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "elevatorFeedforward", "type": "wpimath.controller.ElevatorFeedforward"}], "tooltip": "Returns the static gain.\n\n:returns: The static gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "getKs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_per_meter", "args": [{"name": "elevatorFeedforward", "type": "wpimath.controller.ElevatorFeedforward"}], "tooltip": "Returns the velocity gain.\n\n:returns: The velocity gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "getKv"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "elevatorFeedforward", "type": "wpimath.controller.ElevatorFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the maximum achievable acceleration given a maximum voltage\nsupply and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the elevator.\n:param velocity: The velocity of the elevator.\n\n:returns: The maximum possible acceleration at the given velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "maxAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "elevatorFeedforward", "type": "wpimath.controller.ElevatorFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "acceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Calculates the maximum achievable velocity given a maximum voltage supply\nand an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the elevator.\n:param acceleration: The acceleration of the elevator.\n\n:returns: The maximum possible velocity at the given acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "maxAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "elevatorFeedforward", "type": "wpimath.controller.ElevatorFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the minimum achievable acceleration given a maximum voltage\nsupply and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the elevator.\n:param velocity: The velocity of the elevator.\n\n:returns: The minimum possible acceleration at the given velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "minAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "elevatorFeedforward", "type": "wpimath.controller.ElevatorFeedforward"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "acceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Calculates the minimum achievable velocity given a maximum voltage supply\nand an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the elevator.\n:param acceleration: The acceleration of the elevator.\n\n:returns: The minimum possible velocity at the given acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ElevatorFeedforward", "FUNC": "minAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myElevatorFeedforward"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.HolonomicDriveController.ts b/src/blocks/generated/class_wpimath.controller.HolonomicDriveController.ts
index 6e21593c..af13e1de 100644
--- a/src/blocks/generated/class_wpimath.controller.HolonomicDriveController.ts
+++ b/src/blocks/generated/class_wpimath.controller.HolonomicDriveController.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHolonomicDriveController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.HolonomicDriveController", "args": [{"name": "xController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "yController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "thetaController", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Constructs a holonomic drive controller.\n\n:param xController: A PID Controller to respond to error in the\n field-relative x direction.\n:param yController: A PID Controller to respond to error in the\n field-relative y direction.\n:param thetaController: A profiled PID controller to respond to error in\n angle.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "holonomicDriveController", "type": "wpimath._controls._controls.controller.HolonomicDriveController"}], "tooltip": "Returns true if the pose error is within tolerance of the reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "atReference"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "holonomicDriveController", "type": "wpimath._controls._controls.controller.HolonomicDriveController"}, {"name": "currentPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "trajectoryPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "desiredLinearVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "desiredHeading", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Returns the next output of the holonomic drive controller.\n\n:param currentPose: The current pose, as measured by odometry or pose\n estimator.\n:param trajectoryPose: The desired trajectory pose, as sampled for the\n current timestep.\n:param desiredLinearVelocity: The desired linear velocity.\n:param desiredHeading: The desired heading.\n\n:returns: The next output of the holonomic drive controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "holonomicDriveController", "type": "wpimath._controls._controls.controller.HolonomicDriveController"}, {"name": "currentPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "desiredState", "type": "wpimath._controls._controls.trajectory.Trajectory.State"}, {"name": "desiredHeading", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Returns the next output of the holonomic drive controller.\n\n:param currentPose: The current pose, as measured by odometry or pose\n estimator.\n:param desiredState: The desired trajectory pose, as sampled for the current\n timestep.\n:param desiredHeading: The desired heading.\n\n:returns: The next output of the holonomic drive controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians", "args": [{"name": "holonomicDriveController", "type": "wpimath._controls._controls.controller.HolonomicDriveController"}], "tooltip": "Returns the rotation ProfiledPIDController", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "getThetaController"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPIDController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.controller.PIDController", "args": [{"name": "holonomicDriveController", "type": "wpimath._controls._controls.controller.HolonomicDriveController"}], "tooltip": "Returns the X PIDController", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "getXController"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPIDController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.controller.PIDController", "args": [{"name": "holonomicDriveController", "type": "wpimath._controls._controls.controller.HolonomicDriveController"}], "tooltip": "Returns the Y PIDController", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "getYController"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "holonomicDriveController", "type": "wpimath._controls._controls.controller.HolonomicDriveController"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enables and disables the controller for troubleshooting purposes. When\nCalculate() is called on a disabled controller, only feedforward values\nare returned.\n\n:param enabled: If the controller is enabled or not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "setEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "holonomicDriveController", "type": "wpimath._controls._controls.controller.HolonomicDriveController"}, {"name": "tolerance", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Sets the pose error which is considered tolerable for use with\nAtReference().\n\n:param tolerance: Pose error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHolonomicDriveController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.HolonomicDriveController", "args": [{"name": "xController", "type": "wpimath.controller.PIDController"}, {"name": "yController", "type": "wpimath.controller.PIDController"}, {"name": "thetaController", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Constructs a holonomic drive controller.\n\n:param xController: A PID Controller to respond to error in the\n field-relative x direction.\n:param yController: A PID Controller to respond to error in the\n field-relative y direction.\n:param thetaController: A profiled PID controller to respond to error in\n angle.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "holonomicDriveController", "type": "wpimath.controller.HolonomicDriveController"}], "tooltip": "Returns true if the pose error is within tolerance of the reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "atReference"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "holonomicDriveController", "type": "wpimath.controller.HolonomicDriveController"}, {"name": "currentPose", "type": "wpimath.geometry.Pose2d"}, {"name": "trajectoryPose", "type": "wpimath.geometry.Pose2d"}, {"name": "desiredLinearVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "desiredHeading", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Returns the next output of the holonomic drive controller.\n\n:param currentPose: The current pose, as measured by odometry or pose\n estimator.\n:param trajectoryPose: The desired trajectory pose, as sampled for the\n current timestep.\n:param desiredLinearVelocity: The desired linear velocity.\n:param desiredHeading: The desired heading.\n\n:returns: The next output of the holonomic drive controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "holonomicDriveController", "type": "wpimath.controller.HolonomicDriveController"}, {"name": "currentPose", "type": "wpimath.geometry.Pose2d"}, {"name": "desiredState", "type": "wpimath.trajectory.Trajectory.State"}, {"name": "desiredHeading", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Returns the next output of the holonomic drive controller.\n\n:param currentPose: The current pose, as measured by odometry or pose\n estimator.\n:param desiredState: The desired trajectory pose, as sampled for the current\n timestep.\n:param desiredHeading: The desired heading.\n\n:returns: The next output of the holonomic drive controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.controller.ProfiledPIDControllerRadians", "args": [{"name": "holonomicDriveController", "type": "wpimath.controller.HolonomicDriveController"}], "tooltip": "Returns the rotation ProfiledPIDController", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "getThetaController"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPIDController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.controller.PIDController", "args": [{"name": "holonomicDriveController", "type": "wpimath.controller.HolonomicDriveController"}], "tooltip": "Returns the X PIDController", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "getXController"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPIDController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.controller.PIDController", "args": [{"name": "holonomicDriveController", "type": "wpimath.controller.HolonomicDriveController"}], "tooltip": "Returns the Y PIDController", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "getYController"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "holonomicDriveController", "type": "wpimath.controller.HolonomicDriveController"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enables and disables the controller for troubleshooting purposes. When\nCalculate() is called on a disabled controller, only feedforward values\nare returned.\n\n:param enabled: If the controller is enabled or not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "setEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "holonomicDriveController", "type": "wpimath.controller.HolonomicDriveController"}, {"name": "tolerance", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Sets the pose error which is considered tolerable for use with\nAtReference().\n\n:param tolerance: Pose error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.HolonomicDriveController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHolonomicDriveController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.ImplicitModelFollower_1_1.ts b/src/blocks/generated/class_wpimath.controller.ImplicitModelFollower_1_1.ts
index a6700d71..776a421c 100644
--- a/src/blocks/generated/class_wpimath.controller.ImplicitModelFollower_1_1.ts
+++ b/src/blocks/generated/class_wpimath.controller.ImplicitModelFollower_1_1.ts
@@ -11,14 +11,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 8 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ImplicitModelFollower_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "Aref", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "Bref", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Aref: Continuous system matrix whose dynamics should be followed.\n:param Bref: Continuous input matrix whose dynamics should be followed.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ImplicitModelFollower_1_1", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "plantRef", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ImplicitModelFollower_1_1", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}, {"name": "plantRef", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ImplicitModelFollower_1_1", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}, {"name": "plantRef", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "implicitModelFollower_1_1", "type": "wpimath._controls._controls.controller.ImplicitModelFollower_1_1"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "implicitModelFollower_1_1", "type": "wpimath._controls._controls.controller.ImplicitModelFollower_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "implicitModelFollower_1_1", "type": "wpimath._controls._controls.controller.ImplicitModelFollower_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param u: The current input for the original model.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "implicitModelFollower_1_1", "type": "wpimath._controls._controls.controller.ImplicitModelFollower_1_1"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ImplicitModelFollower_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "Aref", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "Bref", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Aref: Continuous system matrix whose dynamics should be followed.\n:param Bref: Continuous input matrix whose dynamics should be followed.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ImplicitModelFollower_1_1", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "plantRef", "type": "wpimath.system.LinearSystem_1_1_1"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ImplicitModelFollower_1_1", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_1_1_2"}, {"name": "plantRef", "type": "wpimath.system.LinearSystem_1_1_2"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ImplicitModelFollower_1_1", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_1_1_3"}, {"name": "plantRef", "type": "wpimath.system.LinearSystem_1_1_3"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "implicitModelFollower_1_1", "type": "wpimath.controller.ImplicitModelFollower_1_1"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "implicitModelFollower_1_1", "type": "wpimath.controller.ImplicitModelFollower_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "implicitModelFollower_1_1", "type": "wpimath.controller.ImplicitModelFollower_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param u: The current input for the original model.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "implicitModelFollower_1_1", "type": "wpimath.controller.ImplicitModelFollower_1_1"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.ImplicitModelFollower_2_1.ts b/src/blocks/generated/class_wpimath.controller.ImplicitModelFollower_2_1.ts
index fc3daa1d..92e9bc69 100644
--- a/src/blocks/generated/class_wpimath.controller.ImplicitModelFollower_2_1.ts
+++ b/src/blocks/generated/class_wpimath.controller.ImplicitModelFollower_2_1.ts
@@ -11,14 +11,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 8 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ImplicitModelFollower_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "Aref", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "Bref", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Aref: Continuous system matrix whose dynamics should be followed.\n:param Bref: Continuous input matrix whose dynamics should be followed.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ImplicitModelFollower_2_1", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "plantRef", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ImplicitModelFollower_2_1", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "plantRef", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ImplicitModelFollower_2_1", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}, {"name": "plantRef", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "implicitModelFollower_2_1", "type": "wpimath._controls._controls.controller.ImplicitModelFollower_2_1"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "implicitModelFollower_2_1", "type": "wpimath._controls._controls.controller.ImplicitModelFollower_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "implicitModelFollower_2_1", "type": "wpimath._controls._controls.controller.ImplicitModelFollower_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param u: The current input for the original model.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "implicitModelFollower_2_1", "type": "wpimath._controls._controls.controller.ImplicitModelFollower_2_1"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ImplicitModelFollower_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "Aref", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "Bref", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Aref: Continuous system matrix whose dynamics should be followed.\n:param Bref: Continuous input matrix whose dynamics should be followed.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ImplicitModelFollower_2_1", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "plantRef", "type": "wpimath.system.LinearSystem_2_1_1"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ImplicitModelFollower_2_1", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "plantRef", "type": "wpimath.system.LinearSystem_2_1_2"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ImplicitModelFollower_2_1", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_1_3"}, {"name": "plantRef", "type": "wpimath.system.LinearSystem_2_1_3"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "implicitModelFollower_2_1", "type": "wpimath.controller.ImplicitModelFollower_2_1"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "implicitModelFollower_2_1", "type": "wpimath.controller.ImplicitModelFollower_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "implicitModelFollower_2_1", "type": "wpimath.controller.ImplicitModelFollower_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param u: The current input for the original model.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "implicitModelFollower_2_1", "type": "wpimath.controller.ImplicitModelFollower_2_1"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.ImplicitModelFollower_2_2.ts b/src/blocks/generated/class_wpimath.controller.ImplicitModelFollower_2_2.ts
index 5dcd3072..ddeb0017 100644
--- a/src/blocks/generated/class_wpimath.controller.ImplicitModelFollower_2_2.ts
+++ b/src/blocks/generated/class_wpimath.controller.ImplicitModelFollower_2_2.ts
@@ -11,14 +11,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 8 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ImplicitModelFollower_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "Aref", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "Bref", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Aref: Continuous system matrix whose dynamics should be followed.\n:param Bref: Continuous input matrix whose dynamics should be followed.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ImplicitModelFollower_2_2", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}, {"name": "plantRef", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ImplicitModelFollower_2_2", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "plantRef", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ImplicitModelFollower_2_2", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}, {"name": "plantRef", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "implicitModelFollower_2_2", "type": "wpimath._controls._controls.controller.ImplicitModelFollower_2_2"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "implicitModelFollower_2_2", "type": "wpimath._controls._controls.controller.ImplicitModelFollower_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "implicitModelFollower_2_2", "type": "wpimath._controls._controls.controller.ImplicitModelFollower_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param u: The current input for the original model.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "implicitModelFollower_2_2", "type": "wpimath._controls._controls.controller.ImplicitModelFollower_2_2"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ImplicitModelFollower_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "Aref", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "Bref", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Aref: Continuous system matrix whose dynamics should be followed.\n:param Bref: Continuous input matrix whose dynamics should be followed.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ImplicitModelFollower_2_2", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_2_1"}, {"name": "plantRef", "type": "wpimath.system.LinearSystem_2_2_1"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ImplicitModelFollower_2_2", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "plantRef", "type": "wpimath.system.LinearSystem_2_2_2"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ImplicitModelFollower_2_2", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_2_3"}, {"name": "plantRef", "type": "wpimath.system.LinearSystem_2_2_3"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "implicitModelFollower_2_2", "type": "wpimath.controller.ImplicitModelFollower_2_2"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "implicitModelFollower_2_2", "type": "wpimath.controller.ImplicitModelFollower_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "implicitModelFollower_2_2", "type": "wpimath.controller.ImplicitModelFollower_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param u: The current input for the original model.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "implicitModelFollower_2_2", "type": "wpimath.controller.ImplicitModelFollower_2_2"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ImplicitModelFollower_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myImplicitModelFollower_2_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.LTVDifferentialDriveController.ts b/src/blocks/generated/class_wpimath.controller.LTVDifferentialDriveController.ts
index ab117380..4e187b27 100644
--- a/src/blocks/generated/class_wpimath.controller.LTVDifferentialDriveController.ts
+++ b/src/blocks/generated/class_wpimath.controller.LTVDifferentialDriveController.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLTVDifferentialDriveController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LTVDifferentialDriveController", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "trackwidth", "type": "wpimath.units.meters"}, {"name": "Qelems", "type": "Tuple[float, float, float, float, float]"}, {"name": "Relems", "type": "Tuple[float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a linear time-varying differential drive controller.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-intro.html#lqr-tuning\nfor how to select the tolerances.\n\n:param plant: The differential drive velocity plant.\n:param trackwidth: The distance between the differential drive's left and\n right wheels.\n:param Qelems: The maximum desired error tolerance for each state.\n:param Relems: The maximum desired control effort for each input.\n:param dt: Discretization timestep.\n @throws std::domain_error if max velocity of plant with 12 V input <= 0 m/s\n or >= 15 m/s.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVDifferentialDriveController"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "lTVDifferentialDriveController", "type": "wpimath._controls._controls.controller.LTVDifferentialDriveController"}], "tooltip": "Returns true if the pose error is within tolerance of the reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVDifferentialDriveController", "FUNC": "atReference"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVDifferentialDriveController"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelVoltages"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.controller.DifferentialDriveWheelVoltages", "args": [{"name": "lTVDifferentialDriveController", "type": "wpimath._controls._controls.controller.LTVDifferentialDriveController"}, {"name": "currentPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "leftVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "rightVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "poseRef", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "leftVelocityRef", "type": "wpimath.units.meters_per_second"}, {"name": "rightVelocityRef", "type": "wpimath.units.meters_per_second"}], "tooltip": "Returns the left and right output voltages of the LTV controller.\n\nThe reference pose, linear velocity, and angular velocity should come from\na drivetrain trajectory.\n\n:param currentPose: The current pose.\n:param leftVelocity: The current left velocity.\n:param rightVelocity: The current right velocity.\n:param poseRef: The desired pose.\n:param leftVelocityRef: The desired left velocity.\n:param rightVelocityRef: The desired right velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVDifferentialDriveController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVDifferentialDriveController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelVoltages"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.controller.DifferentialDriveWheelVoltages", "args": [{"name": "lTVDifferentialDriveController", "type": "wpimath._controls._controls.controller.LTVDifferentialDriveController"}, {"name": "currentPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "leftVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "rightVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "desiredState", "type": "wpimath._controls._controls.trajectory.Trajectory.State"}], "tooltip": "Returns the left and right output voltages of the LTV controller.\n\nThe reference pose, linear velocity, and angular velocity should come from\na drivetrain trajectory.\n\n:param currentPose: The current pose.\n:param leftVelocity: The left velocity.\n:param rightVelocity: The right velocity.\n:param desiredState: The desired pose, linear velocity, and angular velocity\n from a trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVDifferentialDriveController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVDifferentialDriveController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lTVDifferentialDriveController", "type": "wpimath._controls._controls.controller.LTVDifferentialDriveController"}, {"name": "poseTolerance", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "leftVelocityTolerance", "type": "wpimath.units.meters_per_second"}, {"name": "rightVelocityTolerance", "type": "wpimath.units.meters_per_second"}], "tooltip": "Sets the pose error which is considered tolerable for use with\nAtReference().\n\n:param poseTolerance: Pose error which is tolerable.\n:param leftVelocityTolerance: Left velocity error which is tolerable.\n:param rightVelocityTolerance: Right velocity error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVDifferentialDriveController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVDifferentialDriveController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLTVDifferentialDriveController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LTVDifferentialDriveController", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "trackwidth", "type": "wpimath.units.meters"}, {"name": "Qelems", "type": "Tuple[float, float, float, float, float]"}, {"name": "Relems", "type": "Tuple[float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a linear time-varying differential drive controller.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-intro.html#lqr-tuning\nfor how to select the tolerances.\n\n:param plant: The differential drive velocity plant.\n:param trackwidth: The distance between the differential drive's left and\n right wheels.\n:param Qelems: The maximum desired error tolerance for each state.\n:param Relems: The maximum desired control effort for each input.\n:param dt: Discretization timestep.\n @throws std::domain_error if max velocity of plant with 12 V input <= 0 m/s\n or >= 15 m/s.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVDifferentialDriveController"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "lTVDifferentialDriveController", "type": "wpimath.controller.LTVDifferentialDriveController"}], "tooltip": "Returns true if the pose error is within tolerance of the reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVDifferentialDriveController", "FUNC": "atReference"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVDifferentialDriveController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelVoltages"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.controller.DifferentialDriveWheelVoltages", "args": [{"name": "lTVDifferentialDriveController", "type": "wpimath.controller.LTVDifferentialDriveController"}, {"name": "currentPose", "type": "wpimath.geometry.Pose2d"}, {"name": "leftVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "rightVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "poseRef", "type": "wpimath.geometry.Pose2d"}, {"name": "leftVelocityRef", "type": "wpimath.units.meters_per_second"}, {"name": "rightVelocityRef", "type": "wpimath.units.meters_per_second"}], "tooltip": "Returns the left and right output voltages of the LTV controller.\n\nThe reference pose, linear velocity, and angular velocity should come from\na drivetrain trajectory.\n\n:param currentPose: The current pose.\n:param leftVelocity: The current left velocity.\n:param rightVelocity: The current right velocity.\n:param poseRef: The desired pose.\n:param leftVelocityRef: The desired left velocity.\n:param rightVelocityRef: The desired right velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVDifferentialDriveController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVDifferentialDriveController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelVoltages"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.controller.DifferentialDriveWheelVoltages", "args": [{"name": "lTVDifferentialDriveController", "type": "wpimath.controller.LTVDifferentialDriveController"}, {"name": "currentPose", "type": "wpimath.geometry.Pose2d"}, {"name": "leftVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "rightVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "desiredState", "type": "wpimath.trajectory.Trajectory.State"}], "tooltip": "Returns the left and right output voltages of the LTV controller.\n\nThe reference pose, linear velocity, and angular velocity should come from\na drivetrain trajectory.\n\n:param currentPose: The current pose.\n:param leftVelocity: The left velocity.\n:param rightVelocity: The right velocity.\n:param desiredState: The desired pose, linear velocity, and angular velocity\n from a trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVDifferentialDriveController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVDifferentialDriveController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lTVDifferentialDriveController", "type": "wpimath.controller.LTVDifferentialDriveController"}, {"name": "poseTolerance", "type": "wpimath.geometry.Pose2d"}, {"name": "leftVelocityTolerance", "type": "wpimath.units.meters_per_second"}, {"name": "rightVelocityTolerance", "type": "wpimath.units.meters_per_second"}], "tooltip": "Sets the pose error which is considered tolerable for use with\nAtReference().\n\n:param poseTolerance: Pose error which is tolerable.\n:param leftVelocityTolerance: Left velocity error which is tolerable.\n:param rightVelocityTolerance: Right velocity error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVDifferentialDriveController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVDifferentialDriveController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.LTVUnicycleController.ts b/src/blocks/generated/class_wpimath.controller.LTVUnicycleController.ts
index 0f9015fd..5e16f6d5 100644
--- a/src/blocks/generated/class_wpimath.controller.LTVUnicycleController.ts
+++ b/src/blocks/generated/class_wpimath.controller.LTVUnicycleController.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLTVUnicycleController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LTVUnicycleController", "args": [{"name": "dt", "type": "wpimath.units.seconds"}, {"name": "maxVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Constructs a linear time-varying unicycle controller with default maximum\ndesired error tolerances of (x = 0.0625 m, y = 0.125 m, heading = 2 rad)\nand default maximum desired control effort of (linear velocity = 1 m/s,\nangular velocity = 2 rad/s).\n\n:param dt: Discretization timestep.\n:param maxVelocity: The maximum velocity for the controller gain lookup\n table.\n @throws std::domain_error if maxVelocity <= 0 m/s or >= 15 m/s.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLTVUnicycleController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LTVUnicycleController", "args": [{"name": "Qelems", "type": "Tuple[float, float, float]"}, {"name": "Relems", "type": "Tuple[float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "maxVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Constructs a linear time-varying unicycle controller.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-intro.html#lqr-tuning\nfor how to select the tolerances.\n\n:param Qelems: The maximum desired error tolerance for each state (x, y,\n heading).\n:param Relems: The maximum desired control effort for each input (linear\n velocity, angular velocity).\n:param dt: Discretization timestep.\n:param maxVelocity: The maximum velocity for the controller gain lookup\n table.\n @throws std::domain_error if maxVelocity <= 0 m/s or >= 15 m/s.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "lTVUnicycleController", "type": "wpimath._controls._controls.controller.LTVUnicycleController"}], "tooltip": "Returns true if the pose error is within tolerance of the reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController", "FUNC": "atReference"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVUnicycleController"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "lTVUnicycleController", "type": "wpimath._controls._controls.controller.LTVUnicycleController"}, {"name": "currentPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "poseRef", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "linearVelocityRef", "type": "wpimath.units.meters_per_second"}, {"name": "angularVelocityRef", "type": "wpimath.units.radians_per_second"}], "tooltip": "Returns the linear and angular velocity outputs of the LTV controller.\n\nThe reference pose, linear velocity, and angular velocity should come from\na drivetrain trajectory.\n\n:param currentPose: The current pose.\n:param poseRef: The desired pose.\n:param linearVelocityRef: The desired linear velocity.\n:param angularVelocityRef: The desired angular velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVUnicycleController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "lTVUnicycleController", "type": "wpimath._controls._controls.controller.LTVUnicycleController"}, {"name": "currentPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "desiredState", "type": "wpimath._controls._controls.trajectory.Trajectory.State"}], "tooltip": "Returns the linear and angular velocity outputs of the LTV controller.\n\nThe reference pose, linear velocity, and angular velocity should come from\na drivetrain trajectory.\n\n:param currentPose: The current pose.\n:param desiredState: The desired pose, linear velocity, and angular velocity\n from a trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVUnicycleController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lTVUnicycleController", "type": "wpimath._controls._controls.controller.LTVUnicycleController"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enables and disables the controller for troubleshooting purposes.\n\n:param enabled: If the controller is enabled or not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController", "FUNC": "setEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVUnicycleController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lTVUnicycleController", "type": "wpimath._controls._controls.controller.LTVUnicycleController"}, {"name": "poseTolerance", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Sets the pose error which is considered tolerable for use with\nAtReference().\n\n:param poseTolerance: Pose error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVUnicycleController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLTVUnicycleController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LTVUnicycleController", "args": [{"name": "dt", "type": "wpimath.units.seconds"}, {"name": "maxVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Constructs a linear time-varying unicycle controller with default maximum\ndesired error tolerances of (x = 0.0625 m, y = 0.125 m, heading = 2 rad)\nand default maximum desired control effort of (linear velocity = 1 m/s,\nangular velocity = 2 rad/s).\n\n:param dt: Discretization timestep.\n:param maxVelocity: The maximum velocity for the controller gain lookup\n table.\n @throws std::domain_error if maxVelocity <= 0 m/s or >= 15 m/s.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLTVUnicycleController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LTVUnicycleController", "args": [{"name": "Qelems", "type": "Tuple[float, float, float]"}, {"name": "Relems", "type": "Tuple[float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "maxVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Constructs a linear time-varying unicycle controller.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-intro.html#lqr-tuning\nfor how to select the tolerances.\n\n:param Qelems: The maximum desired error tolerance for each state (x, y,\n heading).\n:param Relems: The maximum desired control effort for each input (linear\n velocity, angular velocity).\n:param dt: Discretization timestep.\n:param maxVelocity: The maximum velocity for the controller gain lookup\n table.\n @throws std::domain_error if maxVelocity <= 0 m/s or >= 15 m/s.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "lTVUnicycleController", "type": "wpimath.controller.LTVUnicycleController"}], "tooltip": "Returns true if the pose error is within tolerance of the reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController", "FUNC": "atReference"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVUnicycleController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "lTVUnicycleController", "type": "wpimath.controller.LTVUnicycleController"}, {"name": "currentPose", "type": "wpimath.geometry.Pose2d"}, {"name": "poseRef", "type": "wpimath.geometry.Pose2d"}, {"name": "linearVelocityRef", "type": "wpimath.units.meters_per_second"}, {"name": "angularVelocityRef", "type": "wpimath.units.radians_per_second"}], "tooltip": "Returns the linear and angular velocity outputs of the LTV controller.\n\nThe reference pose, linear velocity, and angular velocity should come from\na drivetrain trajectory.\n\n:param currentPose: The current pose.\n:param poseRef: The desired pose.\n:param linearVelocityRef: The desired linear velocity.\n:param angularVelocityRef: The desired angular velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVUnicycleController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "lTVUnicycleController", "type": "wpimath.controller.LTVUnicycleController"}, {"name": "currentPose", "type": "wpimath.geometry.Pose2d"}, {"name": "desiredState", "type": "wpimath.trajectory.Trajectory.State"}], "tooltip": "Returns the linear and angular velocity outputs of the LTV controller.\n\nThe reference pose, linear velocity, and angular velocity should come from\na drivetrain trajectory.\n\n:param currentPose: The current pose.\n:param desiredState: The desired pose, linear velocity, and angular velocity\n from a trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVUnicycleController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lTVUnicycleController", "type": "wpimath.controller.LTVUnicycleController"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enables and disables the controller for troubleshooting purposes.\n\n:param enabled: If the controller is enabled or not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController", "FUNC": "setEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVUnicycleController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "lTVUnicycleController", "type": "wpimath.controller.LTVUnicycleController"}, {"name": "poseTolerance", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Sets the pose error which is considered tolerable for use with\nAtReference().\n\n:param poseTolerance: Pose error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LTVUnicycleController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLTVUnicycleController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_1_1.ts b/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_1_1.ts
index e442a89c..328f87c9 100644
--- a/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_1_1.ts
+++ b/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_1_1.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with the given coefficients.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: Discretization timestep.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_1_1"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_1_1"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_1_1"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with the given coefficients.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: Discretization timestep.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_1_1"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_1_1"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_1_1"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_1_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_1_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_2_1.ts b/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_2_1.ts
index 3ce0f1a5..c108d5c9 100644
--- a/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_2_1.ts
+++ b/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_2_1.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with the given coefficients.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: Discretization timestep.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_1"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_1"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_1"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with the given coefficients.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: Discretization timestep.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_1"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_1"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_1"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_2_1", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_1", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_2_2.ts b/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_2_2.ts
index 422b4856..f7bb6e83 100644
--- a/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_2_2.ts
+++ b/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_2_2.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with the given coefficients.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: Discretization timestep.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_2"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_2"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_2"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with the given coefficients.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: Discretization timestep.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_2"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_2"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_2"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_2_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_2_2", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_3_2.ts b/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_3_2.ts
index 2a1b410a..5a875cd4 100644
--- a/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_3_2.ts
+++ b/src/blocks/generated/class_wpimath.controller.LinearPlantInversionFeedforward_3_2.ts
@@ -11,15 +11,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 9 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_3_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with the given coefficients.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: Discretization timestep.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_3_2"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_3_2"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_3_2"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a feedforward with the given coefficients.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param dt: Discretization timestep.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_3_2"}], "tooltip": "Returns the current reference vector r.\n\n:returns: The current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the current reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Calculate the feedforward with only the desired\nfuture reference. This uses the internally stored \"current\"\nreference.\n\nIf this method is used the initial state of the system is the one set using\nReset(const StateVector&). If the initial state is not\nset it defaults to a zero vector.\n\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "r", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Calculate the feedforward with current and future reference vectors.\n\n:param r: The reference state of the current timestep (k).\n:param nextR: The reference state of the future timestep (k + dt).\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Resets the feedforward with a specified initial state vector.\n\n:param initialState: The initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_3_2"}], "tooltip": "Resets the feedforward with a zero initial state vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_3_2"}], "tooltip": "Returns the previously calculated feedforward as an input vector.\n\n:returns: The calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearPlantInversionFeedforward_3_2", "type": "wpimath.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the previously calculated feedforward.\n\n:param i: Row of uff.\n\n:returns: The row of the calculated feedforward.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearPlantInversionFeedforward_3_2", "FUNC": "uff"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_1_1.ts b/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_1_1.ts
index b65b16ce..1b2410da 100644
--- a/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_1_1.ts
+++ b/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_1_1.ts
@@ -11,23 +11,23 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 17 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "Qelems", "type": "Tuple[float]"}, {"name": "Relems", "type": "Tuple[float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-intro.html#lqr-tuning\nfor how to select the tolerances.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Qelems: The maximum desired error tolerance for each state.\n:param Relems: The maximum desired control effort for each input.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "N", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param N: The state-input cross-term cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1", "args": [{"name": "arg0", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "arg1", "type": "Tuple[float]"}, {"name": "arg2", "type": "Tuple[float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1", "args": [{"name": "arg0", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}, {"name": "arg1", "type": "Tuple[float]"}, {"name": "arg2", "type": "Tuple[float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1", "args": [{"name": "arg0", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}, {"name": "arg1", "type": "Tuple[float]"}, {"name": "arg2", "type": "Tuple[float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}], "tooltip": "Returns the controller matrix K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the controller matrix K.\n\n:param i: Row of K.\n:param j: Column of K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}], "tooltip": "Returns the reference vector r.\n\n:returns: The reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param nextR: The next reference vector r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}, {"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}, {"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "Qelems", "type": "Tuple[float]"}, {"name": "Relems", "type": "Tuple[float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-intro.html#lqr-tuning\nfor how to select the tolerances.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Qelems: The maximum desired error tolerance for each state.\n:param Relems: The maximum desired control effort for each input.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "N", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param N: The state-input cross-term cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_1_1", "args": [{"name": "arg0", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "arg1", "type": "Tuple[float]"}, {"name": "arg2", "type": "Tuple[float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_1_1", "args": [{"name": "arg0", "type": "wpimath.system.LinearSystem_1_1_2"}, {"name": "arg1", "type": "Tuple[float]"}, {"name": "arg2", "type": "Tuple[float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_1_1", "args": [{"name": "arg0", "type": "wpimath.system.LinearSystem_1_1_3"}, {"name": "arg1", "type": "Tuple[float]"}, {"name": "arg2", "type": "Tuple[float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}], "tooltip": "Returns the controller matrix K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the controller matrix K.\n\n:param i: Row of K.\n:param j: Column of K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}], "tooltip": "Returns the reference vector r.\n\n:returns: The reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param nextR: The next reference vector r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}, {"name": "plant", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}, {"name": "plant", "type": "wpimath.system.LinearSystem_1_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_1_1", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_2_1.ts b/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_2_1.ts
index f771e223..093aa3cd 100644
--- a/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_2_1.ts
+++ b/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_2_1.ts
@@ -11,23 +11,23 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 17 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "Qelems", "type": "Tuple[float, float]"}, {"name": "Relems", "type": "Tuple[float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-intro.html#lqr-tuning\nfor how to select the tolerances.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Qelems: The maximum desired error tolerance for each state.\n:param Relems: The maximum desired control effort for each input.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "N", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param N: The state-input cross-term cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1", "args": [{"name": "arg0", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "arg1", "type": "Tuple[float, float]"}, {"name": "arg2", "type": "Tuple[float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1", "args": [{"name": "arg0", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "arg1", "type": "Tuple[float, float]"}, {"name": "arg2", "type": "Tuple[float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1", "args": [{"name": "arg0", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}, {"name": "arg1", "type": "Tuple[float, float]"}, {"name": "arg2", "type": "Tuple[float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 2]]", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}], "tooltip": "Returns the controller matrix K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the controller matrix K.\n\n:param i: Row of K.\n:param j: Column of K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}], "tooltip": "Returns the reference vector r.\n\n:returns: The reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param nextR: The next reference vector r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}, {"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}, {"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "Qelems", "type": "Tuple[float, float]"}, {"name": "Relems", "type": "Tuple[float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-intro.html#lqr-tuning\nfor how to select the tolerances.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Qelems: The maximum desired error tolerance for each state.\n:param Relems: The maximum desired control effort for each input.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "N", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param N: The state-input cross-term cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_2_1", "args": [{"name": "arg0", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "arg1", "type": "Tuple[float, float]"}, {"name": "arg2", "type": "Tuple[float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_2_1", "args": [{"name": "arg0", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "arg1", "type": "Tuple[float, float]"}, {"name": "arg2", "type": "Tuple[float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_2_1", "args": [{"name": "arg0", "type": "wpimath.system.LinearSystem_2_1_3"}, {"name": "arg1", "type": "Tuple[float, float]"}, {"name": "arg2", "type": "Tuple[float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 2]]", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}], "tooltip": "Returns the controller matrix K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the controller matrix K.\n\n:param i: Row of K.\n:param j: Column of K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}], "tooltip": "Returns the reference vector r.\n\n:returns: The reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param nextR: The next reference vector r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}, {"name": "plant", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}, {"name": "plant", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_2_1", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_2_2.ts b/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_2_2.ts
index 6e82c0b9..87a0d5d4 100644
--- a/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_2_2.ts
+++ b/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_2_2.ts
@@ -11,23 +11,23 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 17 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "Qelems", "type": "Tuple[float, float]"}, {"name": "Relems", "type": "Tuple[float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-intro.html#lqr-tuning\nfor how to select the tolerances.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Qelems: The maximum desired error tolerance for each state.\n:param Relems: The maximum desired control effort for each input.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "N", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param N: The state-input cross-term cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2", "args": [{"name": "arg0", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}, {"name": "arg1", "type": "Tuple[float, float]"}, {"name": "arg2", "type": "Tuple[float, float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2", "args": [{"name": "arg0", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "arg1", "type": "Tuple[float, float]"}, {"name": "arg2", "type": "Tuple[float, float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2", "args": [{"name": "arg0", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}, {"name": "arg1", "type": "Tuple[float, float]"}, {"name": "arg2", "type": "Tuple[float, float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}], "tooltip": "Returns the controller matrix K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the controller matrix K.\n\n:param i: Row of K.\n:param j: Column of K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}], "tooltip": "Returns the reference vector r.\n\n:returns: The reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param nextR: The next reference vector r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}, {"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}, {"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "Qelems", "type": "Tuple[float, float]"}, {"name": "Relems", "type": "Tuple[float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-intro.html#lqr-tuning\nfor how to select the tolerances.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Qelems: The maximum desired error tolerance for each state.\n:param Relems: The maximum desired control effort for each input.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "N", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param N: The state-input cross-term cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_2_2", "args": [{"name": "arg0", "type": "wpimath.system.LinearSystem_2_2_1"}, {"name": "arg1", "type": "Tuple[float, float]"}, {"name": "arg2", "type": "Tuple[float, float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_2_2", "args": [{"name": "arg0", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "arg1", "type": "Tuple[float, float]"}, {"name": "arg2", "type": "Tuple[float, float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_2_2", "args": [{"name": "arg0", "type": "wpimath.system.LinearSystem_2_2_3"}, {"name": "arg1", "type": "Tuple[float, float]"}, {"name": "arg2", "type": "Tuple[float, float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}], "tooltip": "Returns the controller matrix K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the controller matrix K.\n\n:param i: Row of K.\n:param j: Column of K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}], "tooltip": "Returns the reference vector r.\n\n:returns: The reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param nextR: The next reference vector r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}, {"name": "plant", "type": "wpimath.system.LinearSystem_2_2_1"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}, {"name": "plant", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_2_2", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_3_2.ts b/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_3_2.ts
index eab7a4bf..f9e88e8c 100644
--- a/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_3_2.ts
+++ b/src/blocks/generated/class_wpimath.controller.LinearQuadraticRegulator_3_2.ts
@@ -11,23 +11,23 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 17 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "Qelems", "type": "Tuple[float, float, float]"}, {"name": "Relems", "type": "Tuple[float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-intro.html#lqr-tuning\nfor how to select the tolerances.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Qelems: The maximum desired error tolerance for each state.\n:param Relems: The maximum desired control effort for each input.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "N", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param N: The state-input cross-term cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2", "args": [{"name": "arg0", "type": "wpimath._controls._controls.system.LinearSystem_3_2_1"}, {"name": "arg1", "type": "Tuple[float, float, float]"}, {"name": "arg2", "type": "Tuple[float, float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2", "args": [{"name": "arg0", "type": "wpimath._controls._controls.system.LinearSystem_3_2_2"}, {"name": "arg1", "type": "Tuple[float, float, float]"}, {"name": "arg2", "type": "Tuple[float, float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2", "args": [{"name": "arg0", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}, {"name": "arg1", "type": "Tuple[float, float, float]"}, {"name": "arg2", "type": "Tuple[float, float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 3]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 3]]", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}], "tooltip": "Returns the controller matrix K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the controller matrix K.\n\n:param i: Row of K.\n:param j: Column of K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}], "tooltip": "Returns the reference vector r.\n\n:returns: The reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param nextR: The next reference vector r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}, {"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_3_2_1"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}, {"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_3_2_2"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_3_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "Qelems", "type": "Tuple[float, float, float]"}, {"name": "Relems", "type": "Tuple[float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-intro.html#lqr-tuning\nfor how to select the tolerances.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Qelems: The maximum desired error tolerance for each state.\n:param Relems: The maximum desired control effort for each input.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_3_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_3_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "Q", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "N", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a controller with the given coefficients and plant.\n\n:param A: Continuous system matrix of the plant being controlled.\n:param B: Continuous input matrix of the plant being controlled.\n:param Q: The state cost matrix.\n:param R: The input cost matrix.\n:param N: The state-input cross-term cost matrix.\n:param dt: Discretization timestep.\n @throws std::invalid_argument If the system is unstabilizable.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_3_2", "args": [{"name": "arg0", "type": "wpimath.system.LinearSystem_3_2_1"}, {"name": "arg1", "type": "Tuple[float, float, float]"}, {"name": "arg2", "type": "Tuple[float, float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_3_2", "args": [{"name": "arg0", "type": "wpimath.system.LinearSystem_3_2_2"}, {"name": "arg1", "type": "Tuple[float, float, float]"}, {"name": "arg2", "type": "Tuple[float, float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.LinearQuadraticRegulator_3_2", "args": [{"name": "arg0", "type": "wpimath.system.LinearSystem_3_2_3"}, {"name": "arg1", "type": "Tuple[float, float, float]"}, {"name": "arg2", "type": "Tuple[float, float]"}, {"name": "arg3", "type": "wpimath.units.seconds"}], "tooltip": "", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 3]]", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}], "tooltip": "Returns the controller matrix K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the controller matrix K.\n\n:param i: Row of K.\n:param j: Column of K.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "K"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}], "tooltip": "Returns the reference vector r.\n\n:returns: The reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the reference vector r.\n\n:param i: Row of r.\n\n:returns: The row of the reference vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "R"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}], "tooltip": "Returns the control input vector u.\n\n:returns: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the control input vector u.\n\n:param i: Row of u.\n\n:returns: The row of the control input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Returns the next output of the controller.\n\n:param x: The current state x.\n:param nextR: The next reference vector r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}, {"name": "plant", "type": "wpimath.system.LinearSystem_3_2_1"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}, {"name": "plant", "type": "wpimath.system.LinearSystem_3_2_2"}, {"name": "dt", "type": "wpimath.units.seconds"}, {"name": "inputDelay", "type": "wpimath.units.seconds"}], "tooltip": "Adjusts LQR controller gain to compensate for a pure time delay in the\ninput.\n\nLinear-Quadratic regulator controller gains tend to be aggressive. If\nsensor measurements are time-delayed too long, the LQR may be unstable.\nHowever, if we know the amount of delay, we can compute the control based\non where the system will be after the time delay.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf\nappendix C.4 for a derivation.\n\n:param plant: The plant being controlled.\n:param dt: Discretization timestep.\n:param inputDelay: Input time delay.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "latencyCompensate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearQuadraticRegulator_3_2", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}], "tooltip": "Resets the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.LinearQuadraticRegulator_3_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.PIDController.ts b/src/blocks/generated/class_wpimath.controller.PIDController.ts
index 14d15005..a695f9dc 100644
--- a/src/blocks/generated/class_wpimath.controller.PIDController.ts
+++ b/src/blocks/generated/class_wpimath.controller.PIDController.ts
@@ -11,38 +11,38 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 32 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPIDController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.PIDController", "args": [{"name": "Kp", "type": "float"}, {"name": "Ki", "type": "float"}, {"name": "Kd", "type": "float"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Allocates a PIDController with the given constants for Kp, Ki, and Kd.\n\n:param Kp: The proportional coefficient. Must be >= 0.\n:param Ki: The integral coefficient. Must be >= 0.\n:param Kd: The derivative coefficient. Must be >= 0.\n:param period: The period between controller updates in seconds. The\n default is 20 milliseconds. Must be positive.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Returns true if the error is within the tolerance of the setpoint.\nThe error tolerance defauls to 0.05, and the error derivative tolerance\ndefaults to \u221e.\n\nThis will return false until at least one input value has been computed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "atSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "measurement", "type": "float"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "measurement", "type": "float"}, {"name": "setpoint", "type": "float"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param setpoint: The new setpoint of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Disables continuous input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "disableContinuousInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "minimumInput", "type": "float"}, {"name": "maximumInput", "type": "float"}], "tooltip": "Enables continuous input.\n\nRather then using the max and min input range as constraints, it considers\nthem to be the same point and automatically calculates the shortest route\nto the setpoint.\n\n:param minimumInput: The minimum value expected from the input.\n:param maximumInput: The maximum value expected from the input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "enableContinuousInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Gets the accumulated error used in the integral calculation of this\ncontroller.\n\n:returns: The accumulated error of this controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getAccumulatedError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Gets the differential coefficient.\n\n:returns: differential coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getD"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Returns the difference between the setpoint and the measurement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Returns the error derivative.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getErrorDerivative"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Gets the error derivative tolerance of this controller. Defaults to \u221e.\n\n:returns: The error derivative tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getErrorDerivativeTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Gets the error tolerance of this controller. Defaults to 0.05.\n\n:returns: The error tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getErrorTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Gets the integral coefficient.\n\n:returns: integral coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Get the IZone range.\n\n:returns: Maximum magnitude of error to allow integral control.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getIZone"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Gets the proportional coefficient.\n\n:returns: proportional coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Gets the period of this controller.\n\n:returns: The period of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Returns the difference between the setpoint and the measurement.\n\n:deprecated: Use GetError() instead.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getPositionError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Gets the position tolerance of this controller.\n\n:deprecated: Use GetErrorTolerance() instead.\n\n:returns: The position tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getPositionTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Returns the current setpoint of the PIDController.\n\n:returns: The current setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Returns the velocity error.\n\n:deprecated: Use GetErrorDerivative() instead.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getVelocityError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Gets the velocity tolerance of this controller.\n\n:deprecated: Use GetErrorDerivativeTolerance() instead.\n\n:returns: The velocity tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getVelocityTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Returns true if continuous input is enabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "isContinuousInputEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}], "tooltip": "Reset the previous error, the integral term, and disable the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "Kd", "type": "float"}], "tooltip": "Sets the differential coefficient of the PID controller gain.\n\n:param Kd: The differential coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setD"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "Ki", "type": "float"}], "tooltip": "Sets the integral coefficient of the PID controller gain.\n\n:param Ki: The integral coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "iZone", "type": "float"}], "tooltip": "Sets the IZone range. When the absolute value of the position error is\ngreater than IZone, the total accumulated error will reset to zero,\ndisabling integral gain until the absolute value of the position error is\nless than IZone. This is used to prevent integral windup. Must be\nnon-negative. Passing a value of zero will effectively disable integral\ngain. Passing a value of infinity disables IZone functionality.\n\n:param iZone: Maximum magnitude of error to allow integral control. Must be\n >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setIZone"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "minimumIntegral", "type": "float"}, {"name": "maximumIntegral", "type": "float"}], "tooltip": "Sets the minimum and maximum contributions of the integral term.\n\nThe internal integrator is clamped so that the integral term's contribution\nto the output stays between minimumIntegral and maximumIntegral. This\nprevents integral windup.\n\n:param minimumIntegral: The minimum contribution of the integral term.\n:param maximumIntegral: The maximum contribution of the integral term.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setIntegratorRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "Kp", "type": "float"}], "tooltip": "Sets the proportional coefficient of the PID controller gain.\n\n:param Kp: The proportional coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "Kp", "type": "float"}, {"name": "Ki", "type": "float"}, {"name": "Kd", "type": "float"}], "tooltip": "Sets the PID Controller gain parameters.\n\nSets the proportional, integral, and differential coefficients.\n\n:param Kp: The proportional coefficient. Must be >= 0.\n:param Ki: The integral coefficient. Must be >= 0.\n:param Kd: The differential coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setPID"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "setpoint", "type": "float"}], "tooltip": "Sets the setpoint for the PIDController.\n\n:param setpoint: The desired setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath._controls._controls.controller.PIDController"}, {"name": "errorTolerance", "type": "float"}, {"name": "errorDerivativeTolerance", "type": "float"}], "tooltip": "Sets the error which is considered tolerable for use with AtSetpoint().\n\n:param errorTolerance: error which is tolerable.\n:param errorDerivativeTolerance: error derivative which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPIDController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.PIDController", "args": [{"name": "Kp", "type": "float"}, {"name": "Ki", "type": "float"}, {"name": "Kd", "type": "float"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Allocates a PIDController with the given constants for Kp, Ki, and Kd.\n\n:param Kp: The proportional coefficient. Must be >= 0.\n:param Ki: The integral coefficient. Must be >= 0.\n:param Kd: The derivative coefficient. Must be >= 0.\n:param period: The period between controller updates in seconds. The\n default is 20 milliseconds. Must be positive.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Returns true if the error is within the tolerance of the setpoint.\nThe error tolerance defauls to 0.05, and the error derivative tolerance\ndefaults to \u221e.\n\nThis will return false until at least one input value has been computed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "atSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}, {"name": "measurement", "type": "float"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}, {"name": "measurement", "type": "float"}, {"name": "setpoint", "type": "float"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param setpoint: The new setpoint of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Disables continuous input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "disableContinuousInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}, {"name": "minimumInput", "type": "float"}, {"name": "maximumInput", "type": "float"}], "tooltip": "Enables continuous input.\n\nRather then using the max and min input range as constraints, it considers\nthem to be the same point and automatically calculates the shortest route\nto the setpoint.\n\n:param minimumInput: The minimum value expected from the input.\n:param maximumInput: The maximum value expected from the input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "enableContinuousInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Gets the accumulated error used in the integral calculation of this\ncontroller.\n\n:returns: The accumulated error of this controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getAccumulatedError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Gets the differential coefficient.\n\n:returns: differential coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getD"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Returns the difference between the setpoint and the measurement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Returns the error derivative.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getErrorDerivative"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Gets the error derivative tolerance of this controller. Defaults to \u221e.\n\n:returns: The error derivative tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getErrorDerivativeTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Gets the error tolerance of this controller. Defaults to 0.05.\n\n:returns: The error tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getErrorTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Gets the integral coefficient.\n\n:returns: integral coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Get the IZone range.\n\n:returns: Maximum magnitude of error to allow integral control.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getIZone"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Gets the proportional coefficient.\n\n:returns: proportional coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Gets the period of this controller.\n\n:returns: The period of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Returns the difference between the setpoint and the measurement.\n\n:deprecated: Use GetError() instead.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getPositionError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Gets the position tolerance of this controller.\n\n:deprecated: Use GetErrorTolerance() instead.\n\n:returns: The position tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getPositionTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Returns the current setpoint of the PIDController.\n\n:returns: The current setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Returns the velocity error.\n\n:deprecated: Use GetErrorDerivative() instead.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getVelocityError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Gets the velocity tolerance of this controller.\n\n:deprecated: Use GetErrorDerivativeTolerance() instead.\n\n:returns: The velocity tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "getVelocityTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Returns true if continuous input is enabled.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "isContinuousInputEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}], "tooltip": "Reset the previous error, the integral term, and disable the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}, {"name": "Kd", "type": "float"}], "tooltip": "Sets the differential coefficient of the PID controller gain.\n\n:param Kd: The differential coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setD"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}, {"name": "Ki", "type": "float"}], "tooltip": "Sets the integral coefficient of the PID controller gain.\n\n:param Ki: The integral coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}, {"name": "iZone", "type": "float"}], "tooltip": "Sets the IZone range. When the absolute value of the position error is\ngreater than IZone, the total accumulated error will reset to zero,\ndisabling integral gain until the absolute value of the position error is\nless than IZone. This is used to prevent integral windup. Must be\nnon-negative. Passing a value of zero will effectively disable integral\ngain. Passing a value of infinity disables IZone functionality.\n\n:param iZone: Maximum magnitude of error to allow integral control. Must be\n >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setIZone"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}, {"name": "minimumIntegral", "type": "float"}, {"name": "maximumIntegral", "type": "float"}], "tooltip": "Sets the minimum and maximum contributions of the integral term.\n\nThe internal integrator is clamped so that the integral term's contribution\nto the output stays between minimumIntegral and maximumIntegral. This\nprevents integral windup.\n\n:param minimumIntegral: The minimum contribution of the integral term.\n:param maximumIntegral: The maximum contribution of the integral term.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setIntegratorRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}, {"name": "Kp", "type": "float"}], "tooltip": "Sets the proportional coefficient of the PID controller gain.\n\n:param Kp: The proportional coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}, {"name": "Kp", "type": "float"}, {"name": "Ki", "type": "float"}, {"name": "Kd", "type": "float"}], "tooltip": "Sets the PID Controller gain parameters.\n\nSets the proportional, integral, and differential coefficients.\n\n:param Kp: The proportional coefficient. Must be >= 0.\n:param Ki: The integral coefficient. Must be >= 0.\n:param Kd: The differential coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setPID"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}, {"name": "setpoint", "type": "float"}], "tooltip": "Sets the setpoint for the PIDController.\n\n:param setpoint: The desired setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "pIDController", "type": "wpimath.controller.PIDController"}, {"name": "errorTolerance", "type": "float"}, {"name": "errorDerivativeTolerance", "type": "float"}], "tooltip": "Sets the error which is considered tolerable for use with AtSetpoint().\n\n:param errorTolerance: error which is tolerable.\n:param errorDerivativeTolerance: error derivative which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.PIDController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPIDController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.ProfiledPIDController.ts b/src/blocks/generated/class_wpimath.controller.ProfiledPIDController.ts
index 8fa9d788..ed13fecc 100644
--- a/src/blocks/generated/class_wpimath.controller.ProfiledPIDController.ts
+++ b/src/blocks/generated/class_wpimath.controller.ProfiledPIDController.ts
@@ -11,42 +11,42 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 36 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myProfiledPIDController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ProfiledPIDController", "args": [{"name": "Kp", "type": "float"}, {"name": "Ki", "type": "float"}, {"name": "Kd", "type": "float"}, {"name": "constraints", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile.Constraints"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Allocates a ProfiledPIDController with the given constants for Kp, Ki, and\nKd. Users should call reset() when they first start running the controller\nto avoid unwanted behavior.\n\n:param Kp: The proportional coefficient. Must be >= 0.\n:param Ki: The integral coefficient. Must be >= 0.\n:param Kd: The derivative coefficient. Must be >= 0.\n:param constraints: Velocity and acceleration constraints for goal.\n:param period: The period between controller updates in seconds. The\n default is 20 milliseconds. Must be positive.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Returns true if the error is within the tolerance of the error.\n\nThis will return false until at least one input value has been computed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "atGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Returns true if the error is within the tolerance of the error.\n\nCurrently this just reports on target as the actual value passes through\nthe setpoint. Ideally it should be based on being within the tolerance for\nsome period of time.\n\nThis will return false until at least one input value has been computed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "atSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "measurement", "type": "float"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "measurement", "type": "float"}, {"name": "goal", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile.State"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param goal: The new goal of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "measurement", "type": "float"}, {"name": "goal", "type": "float"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param goal: The new goal of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "measurement", "type": "float"}, {"name": "goal", "type": "float"}, {"name": "constraints", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile.Constraints"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param goal: The new goal of the controller.\n:param constraints: Velocity and acceleration constraints for goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Disables continuous input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "disableContinuousInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "minimumInput", "type": "float"}, {"name": "maximumInput", "type": "float"}], "tooltip": "Enables continuous input.\n\nRather then using the max and min input range as constraints, it considers\nthem to be the same point and automatically calculates the shortest route\nto the setpoint.\n\n:param minimumInput: The minimum value expected from the input.\n:param maximumInput: The maximum value expected from the input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "enableContinuousInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Gets the accumulated error used in the integral calculation of this\ncontroller.\n\n:returns: The accumulated error of this controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getAccumulatedError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myConstraints"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfile.Constraints", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Get the velocity and acceleration constraints for this controller.\n\n:returns: Velocity and acceleration constraints.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getConstraints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Gets the differential coefficient.\n\n:returns: differential coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getD"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfile.State", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Gets the goal for the ProfiledPIDController.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Gets the integral coefficient.\n\n:returns: integral coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Get the IZone range.\n\n:returns: Maximum magnitude of error to allow integral control.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getIZone"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Gets the proportional coefficient.\n\n:returns: proportional coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Gets the period of this controller.\n\n:returns: The period of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Returns the difference between the setpoint and the measurement.\n\n:returns: The error.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getPositionError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Gets the position tolerance of this controller.\n\n:returns: The position tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getPositionTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfile.State", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Returns the current setpoint of the ProfiledPIDController.\n\n:returns: The current setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.units_per_second", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Returns the change in error per second.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getVelocityError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}], "tooltip": "Gets the velocity tolerance of this controller.\n\n:returns: The velocity tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getVelocityTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "measurement", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile.State"}], "tooltip": "Reset the previous error and the integral term.\n\n:param measurement: The current measured State of the system.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "measuredPosition", "type": "float"}, {"name": "measuredVelocity", "type": "wpimath.units.units_per_second"}], "tooltip": "Reset the previous error and the integral term.\n\n:param measuredPosition: The current measured position of the system.\n:param measuredVelocity: The current measured velocity of the system.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "measuredPosition", "type": "float"}], "tooltip": "Reset the previous error and the integral term.\n\n:param measuredPosition: The current measured position of the system. The\n velocity is assumed to be zero.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "constraints", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile.Constraints"}], "tooltip": "Set velocity and acceleration constraints for goal.\n\n:param constraints: Velocity and acceleration constraints for goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setConstraints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "Kd", "type": "float"}], "tooltip": "Sets the differential coefficient of the PID controller gain.\n\n:param Kd: The differential coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setD"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "goal", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile.State"}], "tooltip": "Sets the goal for the ProfiledPIDController.\n\n:param goal: The desired unprofiled setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "goal", "type": "float"}], "tooltip": "Sets the goal for the ProfiledPIDController.\n\n:param goal: The desired unprofiled setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "Ki", "type": "float"}], "tooltip": "Sets the integral coefficient of the PID controller gain.\n\n:param Ki: The integral coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "iZone", "type": "float"}], "tooltip": "Sets the IZone range. When the absolute value of the position error is\ngreater than IZone, the total accumulated error will reset to zero,\ndisabling integral gain until the absolute value of the position error is\nless than IZone. This is used to prevent integral windup. Must be\nnon-negative. Passing a value of zero will effectively disable integral\ngain. Passing a value of infinity disables IZone functionality.\n\n:param iZone: Maximum magnitude of error to allow integral control. Must be\n >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setIZone"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "minimumIntegral", "type": "float"}, {"name": "maximumIntegral", "type": "float"}], "tooltip": "Sets the minimum and maximum contributions of the integral term.\n\nThe internal integrator is clamped so that the integral term's contribution\nto the output stays between minimumIntegral and maximumIntegral. This\nprevents integral windup.\n\n:param minimumIntegral: The minimum contribution of the integral term.\n:param maximumIntegral: The maximum contribution of the integral term.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setIntegratorRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "Kp", "type": "float"}], "tooltip": "Sets the proportional coefficient of the PID controller gain.\n\n:param Kp: The proportional coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "Kp", "type": "float"}, {"name": "Ki", "type": "float"}, {"name": "Kd", "type": "float"}], "tooltip": "Sets the PID Controller gain parameters.\n\nSets the proportional, integral, and differential coefficients.\n\n:param Kp: The proportional coefficient. Must be >= 0.\n:param Ki: The integral coefficient. Must be >= 0.\n:param Kd: The differential coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setPID"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath._controls._controls.controller.ProfiledPIDController"}, {"name": "positionTolerance", "type": "float"}, {"name": "velocityTolerance", "type": "wpimath.units.units_per_second"}], "tooltip": "Sets the error which is considered tolerable for use with\nAtSetpoint().\n\n:param positionTolerance: Position error which is tolerable.\n:param velocityTolerance: Velocity error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myProfiledPIDController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ProfiledPIDController", "args": [{"name": "Kp", "type": "float"}, {"name": "Ki", "type": "float"}, {"name": "Kd", "type": "float"}, {"name": "constraints", "type": "wpimath.trajectory.TrapezoidProfile.Constraints"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Allocates a ProfiledPIDController with the given constants for Kp, Ki, and\nKd. Users should call reset() when they first start running the controller\nto avoid unwanted behavior.\n\n:param Kp: The proportional coefficient. Must be >= 0.\n:param Ki: The integral coefficient. Must be >= 0.\n:param Kd: The derivative coefficient. Must be >= 0.\n:param constraints: Velocity and acceleration constraints for goal.\n:param period: The period between controller updates in seconds. The\n default is 20 milliseconds. Must be positive.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Returns true if the error is within the tolerance of the error.\n\nThis will return false until at least one input value has been computed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "atGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Returns true if the error is within the tolerance of the error.\n\nCurrently this just reports on target as the actual value passes through\nthe setpoint. Ideally it should be based on being within the tolerance for\nsome period of time.\n\nThis will return false until at least one input value has been computed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "atSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "measurement", "type": "float"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "measurement", "type": "float"}, {"name": "goal", "type": "wpimath.trajectory.TrapezoidProfile.State"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param goal: The new goal of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "measurement", "type": "float"}, {"name": "goal", "type": "float"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param goal: The new goal of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "measurement", "type": "float"}, {"name": "goal", "type": "float"}, {"name": "constraints", "type": "wpimath.trajectory.TrapezoidProfile.Constraints"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param goal: The new goal of the controller.\n:param constraints: Velocity and acceleration constraints for goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Disables continuous input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "disableContinuousInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "minimumInput", "type": "float"}, {"name": "maximumInput", "type": "float"}], "tooltip": "Enables continuous input.\n\nRather then using the max and min input range as constraints, it considers\nthem to be the same point and automatically calculates the shortest route\nto the setpoint.\n\n:param minimumInput: The minimum value expected from the input.\n:param maximumInput: The maximum value expected from the input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "enableContinuousInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Gets the accumulated error used in the integral calculation of this\ncontroller.\n\n:returns: The accumulated error of this controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getAccumulatedError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myConstraints"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.TrapezoidProfile.Constraints", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Get the velocity and acceleration constraints for this controller.\n\n:returns: Velocity and acceleration constraints.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getConstraints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Gets the differential coefficient.\n\n:returns: differential coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getD"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.TrapezoidProfile.State", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Gets the goal for the ProfiledPIDController.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Gets the integral coefficient.\n\n:returns: integral coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Get the IZone range.\n\n:returns: Maximum magnitude of error to allow integral control.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getIZone"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Gets the proportional coefficient.\n\n:returns: proportional coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Gets the period of this controller.\n\n:returns: The period of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Returns the difference between the setpoint and the measurement.\n\n:returns: The error.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getPositionError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Gets the position tolerance of this controller.\n\n:returns: The position tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getPositionTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.TrapezoidProfile.State", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Returns the current setpoint of the ProfiledPIDController.\n\n:returns: The current setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.units_per_second", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Returns the change in error per second.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getVelocityError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}], "tooltip": "Gets the velocity tolerance of this controller.\n\n:returns: The velocity tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "getVelocityTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "measurement", "type": "wpimath.trajectory.TrapezoidProfile.State"}], "tooltip": "Reset the previous error and the integral term.\n\n:param measurement: The current measured State of the system.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "measuredPosition", "type": "float"}, {"name": "measuredVelocity", "type": "wpimath.units.units_per_second"}], "tooltip": "Reset the previous error and the integral term.\n\n:param measuredPosition: The current measured position of the system.\n:param measuredVelocity: The current measured velocity of the system.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "measuredPosition", "type": "float"}], "tooltip": "Reset the previous error and the integral term.\n\n:param measuredPosition: The current measured position of the system. The\n velocity is assumed to be zero.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "constraints", "type": "wpimath.trajectory.TrapezoidProfile.Constraints"}], "tooltip": "Set velocity and acceleration constraints for goal.\n\n:param constraints: Velocity and acceleration constraints for goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setConstraints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "Kd", "type": "float"}], "tooltip": "Sets the differential coefficient of the PID controller gain.\n\n:param Kd: The differential coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setD"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "goal", "type": "wpimath.trajectory.TrapezoidProfile.State"}], "tooltip": "Sets the goal for the ProfiledPIDController.\n\n:param goal: The desired unprofiled setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "goal", "type": "float"}], "tooltip": "Sets the goal for the ProfiledPIDController.\n\n:param goal: The desired unprofiled setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "Ki", "type": "float"}], "tooltip": "Sets the integral coefficient of the PID controller gain.\n\n:param Ki: The integral coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "iZone", "type": "float"}], "tooltip": "Sets the IZone range. When the absolute value of the position error is\ngreater than IZone, the total accumulated error will reset to zero,\ndisabling integral gain until the absolute value of the position error is\nless than IZone. This is used to prevent integral windup. Must be\nnon-negative. Passing a value of zero will effectively disable integral\ngain. Passing a value of infinity disables IZone functionality.\n\n:param iZone: Maximum magnitude of error to allow integral control. Must be\n >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setIZone"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "minimumIntegral", "type": "float"}, {"name": "maximumIntegral", "type": "float"}], "tooltip": "Sets the minimum and maximum contributions of the integral term.\n\nThe internal integrator is clamped so that the integral term's contribution\nto the output stays between minimumIntegral and maximumIntegral. This\nprevents integral windup.\n\n:param minimumIntegral: The minimum contribution of the integral term.\n:param maximumIntegral: The maximum contribution of the integral term.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setIntegratorRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "Kp", "type": "float"}], "tooltip": "Sets the proportional coefficient of the PID controller gain.\n\n:param Kp: The proportional coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "Kp", "type": "float"}, {"name": "Ki", "type": "float"}, {"name": "Kd", "type": "float"}], "tooltip": "Sets the PID Controller gain parameters.\n\nSets the proportional, integral, and differential coefficients.\n\n:param Kp: The proportional coefficient. Must be >= 0.\n:param Ki: The integral coefficient. Must be >= 0.\n:param Kd: The differential coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setPID"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDController", "type": "wpimath.controller.ProfiledPIDController"}, {"name": "positionTolerance", "type": "float"}, {"name": "velocityTolerance", "type": "wpimath.units.units_per_second"}], "tooltip": "Sets the error which is considered tolerable for use with\nAtSetpoint().\n\n:param positionTolerance: Position error which is tolerable.\n:param velocityTolerance: Velocity error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDController"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.ProfiledPIDControllerRadians.ts b/src/blocks/generated/class_wpimath.controller.ProfiledPIDControllerRadians.ts
index b80cd069..7ee40342 100644
--- a/src/blocks/generated/class_wpimath.controller.ProfiledPIDControllerRadians.ts
+++ b/src/blocks/generated/class_wpimath.controller.ProfiledPIDControllerRadians.ts
@@ -11,42 +11,42 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 36 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians", "args": [{"name": "Kp", "type": "float"}, {"name": "Ki", "type": "float"}, {"name": "Kd", "type": "float"}, {"name": "constraints", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.Constraints"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Allocates a ProfiledPIDController with the given constants for Kp, Ki, and\nKd. Users should call reset() when they first start running the controller\nto avoid unwanted behavior.\n\n:param Kp: The proportional coefficient. Must be >= 0.\n:param Ki: The integral coefficient. Must be >= 0.\n:param Kd: The derivative coefficient. Must be >= 0.\n:param constraints: Velocity and acceleration constraints for goal.\n:param period: The period between controller updates in seconds. The\n default is 20 milliseconds. Must be positive.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Returns true if the error is within the tolerance of the error.\n\nThis will return false until at least one input value has been computed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "atGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Returns true if the error is within the tolerance of the error.\n\nCurrently this just reports on target as the actual value passes through\nthe setpoint. Ideally it should be based on being within the tolerance for\nsome period of time.\n\nThis will return false until at least one input value has been computed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "atSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "measurement", "type": "wpimath.units.radians"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "measurement", "type": "wpimath.units.radians"}, {"name": "goal", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.State"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param goal: The new goal of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "measurement", "type": "wpimath.units.radians"}, {"name": "goal", "type": "wpimath.units.radians"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param goal: The new goal of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "measurement", "type": "wpimath.units.radians"}, {"name": "goal", "type": "wpimath.units.radians"}, {"name": "constraints", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.Constraints"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param goal: The new goal of the controller.\n:param constraints: Velocity and acceleration constraints for goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Disables continuous input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "disableContinuousInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "minimumInput", "type": "wpimath.units.radians"}, {"name": "maximumInput", "type": "wpimath.units.radians"}], "tooltip": "Enables continuous input.\n\nRather then using the max and min input range as constraints, it considers\nthem to be the same point and automatically calculates the shortest route\nto the setpoint.\n\n:param minimumInput: The minimum value expected from the input.\n:param maximumInput: The maximum value expected from the input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "enableContinuousInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the accumulated error used in the integral calculation of this\ncontroller.\n\n:returns: The accumulated error of this controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getAccumulatedError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myConstraints"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.Constraints", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Get the velocity and acceleration constraints for this controller.\n\n:returns: Velocity and acceleration constraints.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getConstraints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the differential coefficient.\n\n:returns: differential coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getD"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.State", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the goal for the ProfiledPIDController.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the integral coefficient.\n\n:returns: integral coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Get the IZone range.\n\n:returns: Maximum magnitude of error to allow integral control.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getIZone"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the proportional coefficient.\n\n:returns: proportional coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the period of this controller.\n\n:returns: The period of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Returns the difference between the setpoint and the measurement.\n\n:returns: The error.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getPositionError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the position tolerance of this controller.\n\n:returns: The position tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getPositionTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.State", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Returns the current setpoint of the ProfiledPIDController.\n\n:returns: The current setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Returns the change in error per second.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getVelocityError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the velocity tolerance of this controller.\n\n:returns: The velocity tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getVelocityTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "builder", "type": "wpiutil._wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "measurement", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.State"}], "tooltip": "Reset the previous error and the integral term.\n\n:param measurement: The current measured State of the system.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "measuredPosition", "type": "wpimath.units.radians"}, {"name": "measuredVelocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Reset the previous error and the integral term.\n\n:param measuredPosition: The current measured position of the system.\n:param measuredVelocity: The current measured velocity of the system.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "measuredPosition", "type": "wpimath.units.radians"}], "tooltip": "Reset the previous error and the integral term.\n\n:param measuredPosition: The current measured position of the system. The\n velocity is assumed to be zero.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "constraints", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.Constraints"}], "tooltip": "Set velocity and acceleration constraints for goal.\n\n:param constraints: Velocity and acceleration constraints for goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setConstraints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "Kd", "type": "float"}], "tooltip": "Sets the differential coefficient of the PID controller gain.\n\n:param Kd: The differential coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setD"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "goal", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.State"}], "tooltip": "Sets the goal for the ProfiledPIDController.\n\n:param goal: The desired unprofiled setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "goal", "type": "wpimath.units.radians"}], "tooltip": "Sets the goal for the ProfiledPIDController.\n\n:param goal: The desired unprofiled setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "Ki", "type": "float"}], "tooltip": "Sets the integral coefficient of the PID controller gain.\n\n:param Ki: The integral coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "iZone", "type": "float"}], "tooltip": "Sets the IZone range. When the absolute value of the position error is\ngreater than IZone, the total accumulated error will reset to zero,\ndisabling integral gain until the absolute value of the position error is\nless than IZone. This is used to prevent integral windup. Must be\nnon-negative. Passing a value of zero will effectively disable integral\ngain. Passing a value of infinity disables IZone functionality.\n\n:param iZone: Maximum magnitude of error to allow integral control. Must be\n >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setIZone"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "minimumIntegral", "type": "float"}, {"name": "maximumIntegral", "type": "float"}], "tooltip": "Sets the minimum and maximum contributions of the integral term.\n\nThe internal integrator is clamped so that the integral term's contribution\nto the output stays between minimumIntegral and maximumIntegral. This\nprevents integral windup.\n\n:param minimumIntegral: The minimum contribution of the integral term.\n:param maximumIntegral: The maximum contribution of the integral term.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setIntegratorRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "Kp", "type": "float"}], "tooltip": "Sets the proportional coefficient of the PID controller gain.\n\n:param Kp: The proportional coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "Kp", "type": "float"}, {"name": "Ki", "type": "float"}, {"name": "Kd", "type": "float"}], "tooltip": "Sets the PID Controller gain parameters.\n\nSets the proportional, integral, and differential coefficients.\n\n:param Kp: The proportional coefficient. Must be >= 0.\n:param Ki: The integral coefficient. Must be >= 0.\n:param Kd: The differential coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setPID"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath._controls._controls.controller.ProfiledPIDControllerRadians"}, {"name": "positionTolerance", "type": "wpimath.units.radians"}, {"name": "velocityTolerance", "type": "wpimath.units.radians_per_second"}], "tooltip": "Sets the error which is considered tolerable for use with\nAtSetpoint().\n\n:param positionTolerance: Position error which is tolerable.\n:param velocityTolerance: Velocity error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.ProfiledPIDControllerRadians", "args": [{"name": "Kp", "type": "float"}, {"name": "Ki", "type": "float"}, {"name": "Kd", "type": "float"}, {"name": "constraints", "type": "wpimath.trajectory.TrapezoidProfileRadians.Constraints"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Allocates a ProfiledPIDController with the given constants for Kp, Ki, and\nKd. Users should call reset() when they first start running the controller\nto avoid unwanted behavior.\n\n:param Kp: The proportional coefficient. Must be >= 0.\n:param Ki: The integral coefficient. Must be >= 0.\n:param Kd: The derivative coefficient. Must be >= 0.\n:param constraints: Velocity and acceleration constraints for goal.\n:param period: The period between controller updates in seconds. The\n default is 20 milliseconds. Must be positive.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Returns true if the error is within the tolerance of the error.\n\nThis will return false until at least one input value has been computed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "atGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Returns true if the error is within the tolerance of the error.\n\nCurrently this just reports on target as the actual value passes through\nthe setpoint. Ideally it should be based on being within the tolerance for\nsome period of time.\n\nThis will return false until at least one input value has been computed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "atSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "measurement", "type": "wpimath.units.radians"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "measurement", "type": "wpimath.units.radians"}, {"name": "goal", "type": "wpimath.trajectory.TrapezoidProfileRadians.State"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param goal: The new goal of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "measurement", "type": "wpimath.units.radians"}, {"name": "goal", "type": "wpimath.units.radians"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param goal: The new goal of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "measurement", "type": "wpimath.units.radians"}, {"name": "goal", "type": "wpimath.units.radians"}, {"name": "constraints", "type": "wpimath.trajectory.TrapezoidProfileRadians.Constraints"}], "tooltip": "Returns the next output of the PID controller.\n\n:param measurement: The current measurement of the process variable.\n:param goal: The new goal of the controller.\n:param constraints: Velocity and acceleration constraints for goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Disables continuous input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "disableContinuousInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "minimumInput", "type": "wpimath.units.radians"}, {"name": "maximumInput", "type": "wpimath.units.radians"}], "tooltip": "Enables continuous input.\n\nRather then using the max and min input range as constraints, it considers\nthem to be the same point and automatically calculates the shortest route\nto the setpoint.\n\n:param minimumInput: The minimum value expected from the input.\n:param maximumInput: The maximum value expected from the input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "enableContinuousInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the accumulated error used in the integral calculation of this\ncontroller.\n\n:returns: The accumulated error of this controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getAccumulatedError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myConstraints"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.TrapezoidProfileRadians.Constraints", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Get the velocity and acceleration constraints for this controller.\n\n:returns: Velocity and acceleration constraints.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getConstraints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the differential coefficient.\n\n:returns: differential coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getD"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.TrapezoidProfileRadians.State", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the goal for the ProfiledPIDController.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the integral coefficient.\n\n:returns: integral coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Get the IZone range.\n\n:returns: Maximum magnitude of error to allow integral control.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getIZone"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the proportional coefficient.\n\n:returns: proportional coefficient", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the period of this controller.\n\n:returns: The period of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getPeriod"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Returns the difference between the setpoint and the measurement.\n\n:returns: The error.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getPositionError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the position tolerance of this controller.\n\n:returns: The position tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getPositionTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.TrapezoidProfileRadians.State", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Returns the current setpoint of the ProfiledPIDController.\n\n:returns: The current setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getSetpoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Returns the change in error per second.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getVelocityError"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}], "tooltip": "Gets the velocity tolerance of this controller.\n\n:returns: The velocity tolerance of the controller.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "getVelocityTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "builder", "type": "wpiutil.SendableBuilder"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "initSendable"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySendableBuilder"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "measurement", "type": "wpimath.trajectory.TrapezoidProfileRadians.State"}], "tooltip": "Reset the previous error and the integral term.\n\n:param measurement: The current measured State of the system.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "measuredPosition", "type": "wpimath.units.radians"}, {"name": "measuredVelocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Reset the previous error and the integral term.\n\n:param measuredPosition: The current measured position of the system.\n:param measuredVelocity: The current measured velocity of the system.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "measuredPosition", "type": "wpimath.units.radians"}], "tooltip": "Reset the previous error and the integral term.\n\n:param measuredPosition: The current measured position of the system. The\n velocity is assumed to be zero.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "constraints", "type": "wpimath.trajectory.TrapezoidProfileRadians.Constraints"}], "tooltip": "Set velocity and acceleration constraints for goal.\n\n:param constraints: Velocity and acceleration constraints for goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setConstraints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "Kd", "type": "float"}], "tooltip": "Sets the differential coefficient of the PID controller gain.\n\n:param Kd: The differential coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setD"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "goal", "type": "wpimath.trajectory.TrapezoidProfileRadians.State"}], "tooltip": "Sets the goal for the ProfiledPIDController.\n\n:param goal: The desired unprofiled setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "goal", "type": "wpimath.units.radians"}], "tooltip": "Sets the goal for the ProfiledPIDController.\n\n:param goal: The desired unprofiled setpoint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setGoal"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "Ki", "type": "float"}], "tooltip": "Sets the integral coefficient of the PID controller gain.\n\n:param Ki: The integral coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "iZone", "type": "float"}], "tooltip": "Sets the IZone range. When the absolute value of the position error is\ngreater than IZone, the total accumulated error will reset to zero,\ndisabling integral gain until the absolute value of the position error is\nless than IZone. This is used to prevent integral windup. Must be\nnon-negative. Passing a value of zero will effectively disable integral\ngain. Passing a value of infinity disables IZone functionality.\n\n:param iZone: Maximum magnitude of error to allow integral control. Must be\n >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setIZone"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "minimumIntegral", "type": "float"}, {"name": "maximumIntegral", "type": "float"}], "tooltip": "Sets the minimum and maximum contributions of the integral term.\n\nThe internal integrator is clamped so that the integral term's contribution\nto the output stays between minimumIntegral and maximumIntegral. This\nprevents integral windup.\n\n:param minimumIntegral: The minimum contribution of the integral term.\n:param maximumIntegral: The maximum contribution of the integral term.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setIntegratorRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "Kp", "type": "float"}], "tooltip": "Sets the proportional coefficient of the PID controller gain.\n\n:param Kp: The proportional coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "Kp", "type": "float"}, {"name": "Ki", "type": "float"}, {"name": "Kd", "type": "float"}], "tooltip": "Sets the PID Controller gain parameters.\n\nSets the proportional, integral, and differential coefficients.\n\n:param Kp: The proportional coefficient. Must be >= 0.\n:param Ki: The integral coefficient. Must be >= 0.\n:param Kd: The differential coefficient. Must be >= 0.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setPID"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "profiledPIDControllerRadians", "type": "wpimath.controller.ProfiledPIDControllerRadians"}, {"name": "positionTolerance", "type": "wpimath.units.radians"}, {"name": "velocityTolerance", "type": "wpimath.units.radians_per_second"}], "tooltip": "Sets the error which is considered tolerable for use with\nAtSetpoint().\n\n:param positionTolerance: Position error which is tolerable.\n:param velocityTolerance: Velocity error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.ProfiledPIDControllerRadians", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfiledPIDControllerRadians"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.RamseteController.ts b/src/blocks/generated/class_wpimath.controller.RamseteController.ts
index d53e7990..d8056291 100644
--- a/src/blocks/generated/class_wpimath.controller.RamseteController.ts
+++ b/src/blocks/generated/class_wpimath.controller.RamseteController.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRamseteController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.RamseteController", "args": [{"name": "b", "type": "float"}, {"name": "zeta", "type": "float"}], "tooltip": "Construct a Ramsete unicycle controller.\n\n:deprecated: Use LTVUnicycleController instead.\n\n:param b: Tuning parameter (b > 0 rad\u00b2/m\u00b2) for which larger values make\n convergence more aggressive like a proportional term.\n:param zeta: Tuning parameter (0 rad\u207b\u00b9 < zeta < 1 rad\u207b\u00b9) for which larger\n values provide more damping in response.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRamseteController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.RamseteController", "args": [], "tooltip": "Construct a Ramsete unicycle controller. The default arguments for\nb and zeta of 2.0 rad\u00b2/m\u00b2 and 0.7 rad\u207b\u00b9 have been well-tested to produce\ndesirable results.\n\n:deprecated: Use LTVUnicycleController instead.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "ramseteController", "type": "wpimath._controls._controls.controller.RamseteController"}], "tooltip": "Returns true if the pose error is within tolerance of the reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController", "FUNC": "atReference"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRamseteController"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "ramseteController", "type": "wpimath._controls._controls.controller.RamseteController"}, {"name": "currentPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "poseRef", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "linearVelocityRef", "type": "wpimath.units.meters_per_second"}, {"name": "angularVelocityRef", "type": "wpimath.units.radians_per_second"}], "tooltip": "Returns the next output of the Ramsete controller.\n\nThe reference pose, linear velocity, and angular velocity should come from\na drivetrain trajectory.\n\n:param currentPose: The current pose.\n:param poseRef: The desired pose.\n:param linearVelocityRef: The desired linear velocity.\n:param angularVelocityRef: The desired angular velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRamseteController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "ramseteController", "type": "wpimath._controls._controls.controller.RamseteController"}, {"name": "currentPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "desiredState", "type": "wpimath._controls._controls.trajectory.Trajectory.State"}], "tooltip": "Returns the next output of the Ramsete controller.\n\nThe reference pose, linear velocity, and angular velocity should come from\na drivetrain trajectory.\n\n:param currentPose: The current pose.\n:param desiredState: The desired pose, linear velocity, and angular velocity\n from a trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRamseteController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ramseteController", "type": "wpimath._controls._controls.controller.RamseteController"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enables and disables the controller for troubleshooting purposes.\n\n:param enabled: If the controller is enabled or not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController", "FUNC": "setEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRamseteController"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ramseteController", "type": "wpimath._controls._controls.controller.RamseteController"}, {"name": "poseTolerance", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Sets the pose error which is considered tolerable for use with\nAtReference().\n\n:param poseTolerance: Pose error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRamseteController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRamseteController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.RamseteController", "args": [{"name": "b", "type": "float"}, {"name": "zeta", "type": "float"}], "tooltip": "Construct a Ramsete unicycle controller.\n\n:deprecated: Use LTVUnicycleController instead.\n\n:param b: Tuning parameter (b > 0 rad\u00b2/m\u00b2) for which larger values make\n convergence more aggressive like a proportional term.\n:param zeta: Tuning parameter (0 rad\u207b\u00b9 < zeta < 1 rad\u207b\u00b9) for which larger\n values provide more damping in response.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRamseteController"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.RamseteController", "args": [], "tooltip": "Construct a Ramsete unicycle controller. The default arguments for\nb and zeta of 2.0 rad\u00b2/m\u00b2 and 0.7 rad\u207b\u00b9 have been well-tested to produce\ndesirable results.\n\n:deprecated: Use LTVUnicycleController instead.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "ramseteController", "type": "wpimath.controller.RamseteController"}], "tooltip": "Returns true if the pose error is within tolerance of the reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController", "FUNC": "atReference"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRamseteController"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "ramseteController", "type": "wpimath.controller.RamseteController"}, {"name": "currentPose", "type": "wpimath.geometry.Pose2d"}, {"name": "poseRef", "type": "wpimath.geometry.Pose2d"}, {"name": "linearVelocityRef", "type": "wpimath.units.meters_per_second"}, {"name": "angularVelocityRef", "type": "wpimath.units.radians_per_second"}], "tooltip": "Returns the next output of the Ramsete controller.\n\nThe reference pose, linear velocity, and angular velocity should come from\na drivetrain trajectory.\n\n:param currentPose: The current pose.\n:param poseRef: The desired pose.\n:param linearVelocityRef: The desired linear velocity.\n:param angularVelocityRef: The desired angular velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRamseteController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "ramseteController", "type": "wpimath.controller.RamseteController"}, {"name": "currentPose", "type": "wpimath.geometry.Pose2d"}, {"name": "desiredState", "type": "wpimath.trajectory.Trajectory.State"}], "tooltip": "Returns the next output of the Ramsete controller.\n\nThe reference pose, linear velocity, and angular velocity should come from\na drivetrain trajectory.\n\n:param currentPose: The current pose.\n:param desiredState: The desired pose, linear velocity, and angular velocity\n from a trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRamseteController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ramseteController", "type": "wpimath.controller.RamseteController"}, {"name": "enabled", "type": "bool"}], "tooltip": "Enables and disables the controller for troubleshooting purposes.\n\n:param enabled: If the controller is enabled or not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController", "FUNC": "setEnabled"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRamseteController"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "ramseteController", "type": "wpimath.controller.RamseteController"}, {"name": "poseTolerance", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Sets the pose error which is considered tolerable for use with\nAtReference().\n\n:param poseTolerance: Pose error which is tolerable.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.RamseteController", "FUNC": "setTolerance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRamseteController"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.SimpleMotorFeedforwardMeters.ts b/src/blocks/generated/class_wpimath.controller.SimpleMotorFeedforwardMeters.ts
index 53ad7fb6..19afb1ff 100644
--- a/src/blocks/generated/class_wpimath.controller.SimpleMotorFeedforwardMeters.ts
+++ b/src/blocks/generated/class_wpimath.controller.SimpleMotorFeedforwardMeters.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.SimpleMotorFeedforwardMeters", "args": [{"name": "kS", "type": "wpimath.units.volts"}, {"name": "kV", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_meter"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Creates a new SimpleMotorFeedforward with the specified gains.\n\n:param kS: The static gain, in volts.\n:param kV: The velocity gain, in volt seconds per distance.\n:param kA: The acceleration gain, in volt seconds\u00b2 per distance.\n:param dt: The period in seconds.\n @throws IllegalArgumentException for kv < zero.\n @throws IllegalArgumentException for ka < zero.\n @throws IllegalArgumentException for period ≤ zero.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardMeters"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the feedforward from the gains and velocity setpoint assuming\ndiscrete control. Use this method when the velocity setpoint does not\nchange.\n\n:param velocity: The velocity setpoint.\n\n:returns: The computed feedforward, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardMeters"}, {"name": "currentVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "nextVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the feedforward from the gains and setpoints assuming discrete\ncontrol.\n\nNote this method is inaccurate when the velocity crosses 0.\n\n:param currentVelocity: The current velocity setpoint.\n:param nextVelocity: The next velocity setpoint.\n\n:returns: The computed feedforward, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardMeters"}], "tooltip": "Returns the period.\n\n:returns: The period.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "getDt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_squared_per_meter", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardMeters"}], "tooltip": "Returns the acceleration gain.\n\n:returns: The acceleration gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "getKa"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardMeters"}], "tooltip": "Returns the static gain.\n\n:returns: The static gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "getKs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_per_meter", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardMeters"}], "tooltip": "Returns the velocity gain.\n\n:returns: The velocity gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "getKv"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardMeters"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the maximum achievable acceleration given a maximum voltage\nsupply and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param velocity: The velocity of the motor.\n\n:returns: The maximum possible acceleration at the given velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "maxAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardMeters"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "acceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Calculates the maximum achievable velocity given a maximum voltage supply\nand an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param acceleration: The acceleration of the motor.\n\n:returns: The maximum possible velocity at the given acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "maxAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardMeters"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the minimum achievable acceleration given a maximum voltage\nsupply and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param velocity: The velocity of the motor.\n\n:returns: The minimum possible acceleration at the given velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "minAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardMeters"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "acceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Calculates the minimum achievable velocity given a maximum voltage supply\nand an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param acceleration: The acceleration of the motor.\n\n:returns: The minimum possible velocity at the given acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "minAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.SimpleMotorFeedforwardMeters", "args": [{"name": "kS", "type": "wpimath.units.volts"}, {"name": "kV", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_meter"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Creates a new SimpleMotorFeedforward with the specified gains.\n\n:param kS: The static gain, in volts.\n:param kV: The velocity gain, in volt seconds per distance.\n:param kA: The acceleration gain, in volt seconds\u00b2 per distance.\n:param dt: The period in seconds.\n @throws IllegalArgumentException for kv < zero.\n @throws IllegalArgumentException for ka < zero.\n @throws IllegalArgumentException for period ≤ zero.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath.controller.SimpleMotorFeedforwardMeters"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the feedforward from the gains and velocity setpoint assuming\ndiscrete control. Use this method when the velocity setpoint does not\nchange.\n\n:param velocity: The velocity setpoint.\n\n:returns: The computed feedforward, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath.controller.SimpleMotorFeedforwardMeters"}, {"name": "currentVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "nextVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the feedforward from the gains and setpoints assuming discrete\ncontrol.\n\nNote this method is inaccurate when the velocity crosses 0.\n\n:param currentVelocity: The current velocity setpoint.\n:param nextVelocity: The next velocity setpoint.\n\n:returns: The computed feedforward, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath.controller.SimpleMotorFeedforwardMeters"}], "tooltip": "Returns the period.\n\n:returns: The period.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "getDt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_squared_per_meter", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath.controller.SimpleMotorFeedforwardMeters"}], "tooltip": "Returns the acceleration gain.\n\n:returns: The acceleration gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "getKa"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath.controller.SimpleMotorFeedforwardMeters"}], "tooltip": "Returns the static gain.\n\n:returns: The static gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "getKs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_per_meter", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath.controller.SimpleMotorFeedforwardMeters"}], "tooltip": "Returns the velocity gain.\n\n:returns: The velocity gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "getKv"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath.controller.SimpleMotorFeedforwardMeters"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the maximum achievable acceleration given a maximum voltage\nsupply and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param velocity: The velocity of the motor.\n\n:returns: The maximum possible acceleration at the given velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "maxAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath.controller.SimpleMotorFeedforwardMeters"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "acceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Calculates the maximum achievable velocity given a maximum voltage supply\nand an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param acceleration: The acceleration of the motor.\n\n:returns: The maximum possible velocity at the given acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "maxAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath.controller.SimpleMotorFeedforwardMeters"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Calculates the minimum achievable acceleration given a maximum voltage\nsupply and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param velocity: The velocity of the motor.\n\n:returns: The minimum possible acceleration at the given velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "minAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "simpleMotorFeedforwardMeters", "type": "wpimath.controller.SimpleMotorFeedforwardMeters"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "acceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Calculates the minimum achievable velocity given a maximum voltage supply\nand an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param acceleration: The acceleration of the motor.\n\n:returns: The minimum possible velocity at the given acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardMeters", "FUNC": "minAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.controller.SimpleMotorFeedforwardRadians.ts b/src/blocks/generated/class_wpimath.controller.SimpleMotorFeedforwardRadians.ts
index 479c2846..9d1088e3 100644
--- a/src/blocks/generated/class_wpimath.controller.SimpleMotorFeedforwardRadians.ts
+++ b/src/blocks/generated/class_wpimath.controller.SimpleMotorFeedforwardRadians.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.controller.SimpleMotorFeedforwardRadians", "args": [{"name": "kS", "type": "wpimath.units.volts"}, {"name": "kV", "type": "wpimath.units.volt_seconds_per_radian"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_radian"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Creates a new SimpleMotorFeedforward with the specified gains.\n\n:param kS: The static gain, in volts.\n:param kV: The velocity gain, in volt seconds per distance.\n:param kA: The acceleration gain, in volt seconds\u00b2 per distance.\n:param dt: The period in seconds.\n @throws IllegalArgumentException for kv < zero.\n @throws IllegalArgumentException for ka < zero.\n @throws IllegalArgumentException for period ≤ zero.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardRadians"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the feedforward from the gains and velocity setpoint assuming\ndiscrete control. Use this method when the velocity setpoint does not\nchange.\n\n:param velocity: The velocity setpoint.\n\n:returns: The computed feedforward, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardRadians"}, {"name": "currentVelocity", "type": "wpimath.units.radians_per_second"}, {"name": "nextVelocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the feedforward from the gains and setpoints assuming discrete\ncontrol.\n\nNote this method is inaccurate when the velocity crosses 0.\n\n:param currentVelocity: The current velocity setpoint.\n:param nextVelocity: The next velocity setpoint.\n\n:returns: The computed feedforward, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardRadians"}], "tooltip": "Returns the period.\n\n:returns: The period.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "getDt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_squared_per_radian", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardRadians"}], "tooltip": "Returns the acceleration gain.\n\n:returns: The acceleration gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "getKa"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardRadians"}], "tooltip": "Returns the static gain.\n\n:returns: The static gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "getKs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_per_radian", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardRadians"}], "tooltip": "Returns the velocity gain.\n\n:returns: The velocity gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "getKv"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second_squared", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardRadians"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the maximum achievable acceleration given a maximum voltage\nsupply and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param velocity: The velocity of the motor.\n\n:returns: The maximum possible acceleration at the given velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "maxAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardRadians"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "acceleration", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Calculates the maximum achievable velocity given a maximum voltage supply\nand an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param acceleration: The acceleration of the motor.\n\n:returns: The maximum possible velocity at the given acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "maxAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second_squared", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardRadians"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the minimum achievable acceleration given a maximum voltage\nsupply and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param velocity: The velocity of the motor.\n\n:returns: The minimum possible acceleration at the given velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "minAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardRadians"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "acceleration", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Calculates the minimum achievable velocity given a maximum voltage supply\nand an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param acceleration: The acceleration of the motor.\n\n:returns: The minimum possible velocity at the given acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "minAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.controller.SimpleMotorFeedforwardRadians", "args": [{"name": "kS", "type": "wpimath.units.volts"}, {"name": "kV", "type": "wpimath.units.volt_seconds_per_radian"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_radian"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Creates a new SimpleMotorFeedforward with the specified gains.\n\n:param kS: The static gain, in volts.\n:param kV: The velocity gain, in volt seconds per distance.\n:param kA: The acceleration gain, in volt seconds\u00b2 per distance.\n:param dt: The period in seconds.\n @throws IllegalArgumentException for kv < zero.\n @throws IllegalArgumentException for ka < zero.\n @throws IllegalArgumentException for period ≤ zero.", "importModule": "wpimath.controller"}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath.controller.SimpleMotorFeedforwardRadians"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the feedforward from the gains and velocity setpoint assuming\ndiscrete control. Use this method when the velocity setpoint does not\nchange.\n\n:param velocity: The velocity setpoint.\n\n:returns: The computed feedforward, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath.controller.SimpleMotorFeedforwardRadians"}, {"name": "currentVelocity", "type": "wpimath.units.radians_per_second"}, {"name": "nextVelocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the feedforward from the gains and setpoints assuming discrete\ncontrol.\n\nNote this method is inaccurate when the velocity crosses 0.\n\n:param currentVelocity: The current velocity setpoint.\n:param nextVelocity: The next velocity setpoint.\n\n:returns: The computed feedforward, in volts.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath.controller.SimpleMotorFeedforwardRadians"}], "tooltip": "Returns the period.\n\n:returns: The period.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "getDt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_squared_per_radian", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath.controller.SimpleMotorFeedforwardRadians"}], "tooltip": "Returns the acceleration gain.\n\n:returns: The acceleration gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "getKa"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath.controller.SimpleMotorFeedforwardRadians"}], "tooltip": "Returns the static gain.\n\n:returns: The static gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "getKs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volt_seconds_per_radian", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath.controller.SimpleMotorFeedforwardRadians"}], "tooltip": "Returns the velocity gain.\n\n:returns: The velocity gain.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "getKv"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second_squared", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath.controller.SimpleMotorFeedforwardRadians"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the maximum achievable acceleration given a maximum voltage\nsupply and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param velocity: The velocity of the motor.\n\n:returns: The maximum possible acceleration at the given velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "maxAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath.controller.SimpleMotorFeedforwardRadians"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "acceleration", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Calculates the maximum achievable velocity given a maximum voltage supply\nand an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param acceleration: The acceleration of the motor.\n\n:returns: The maximum possible velocity at the given acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "maxAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second_squared", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath.controller.SimpleMotorFeedforwardRadians"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "Calculates the minimum achievable acceleration given a maximum voltage\nsupply and a velocity. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the velocity constraint, and this will give you\na simultaneously-achievable acceleration constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param velocity: The velocity of the motor.\n\n:returns: The minimum possible acceleration at the given velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "minAchievableAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "simpleMotorFeedforwardRadians", "type": "wpimath.controller.SimpleMotorFeedforwardRadians"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "acceleration", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Calculates the minimum achievable velocity given a maximum voltage supply\nand an acceleration. Useful for ensuring that velocity and\nacceleration constraints for a trapezoidal profile are simultaneously\nachievable - enter the acceleration constraint, and this will give you\na simultaneously-achievable velocity constraint.\n\n:param maxVoltage: The maximum voltage that can be supplied to the motor.\n:param acceleration: The acceleration of the motor.\n\n:returns: The minimum possible velocity at the given acceleration.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.controller.SimpleMotorFeedforwardRadians", "FUNC": "minAchievableVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardRadians"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimator.ts b/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimator.ts
index 8e77b7e0..2ba74efb 100644
--- a/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimator.ts
+++ b/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimator.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a DifferentialDrivePoseEstimator with default standard\ndeviations for the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.02 meters for x, 0.02 meters for y, and 0.01 radians for heading.\nThe default standard deviations of the vision measurements are\n0.1 meters for x, 0.1 meters for y, and 0.1 radians for heading.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The gyro angle of the robot.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param initialPose: The estimated initial pose.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a DifferentialDrivePoseEstimator.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The gyro angle of the robot.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param initialPose: The estimated initial pose.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\n:param gyroAngle: The current gyro angle.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "differentialDrivePoseEstimator", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n\n:returns: The estimated pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "differentialDrivePoseEstimator", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n\n:returns: The estimated pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.DifferentialDrivePoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a DifferentialDrivePoseEstimator with default standard\ndeviations for the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.02 meters for x, 0.02 meters for y, and 0.01 radians for heading.\nThe default standard deviations of the vision measurements are\n0.1 meters for x, 0.1 meters for y, and 0.1 radians for heading.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The gyro angle of the robot.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param initialPose: The estimated initial pose.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.DifferentialDrivePoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a DifferentialDrivePoseEstimator.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The gyro angle of the robot.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param initialPose: The estimated initial pose.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG6": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator", "type": "wpimath.estimator.DifferentialDrivePoseEstimator"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\n:param gyroAngle: The current gyro angle.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "differentialDrivePoseEstimator", "type": "wpimath.estimator.DifferentialDrivePoseEstimator"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n\n:returns: The estimated pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "differentialDrivePoseEstimator", "type": "wpimath.estimator.DifferentialDrivePoseEstimator"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n\n:returns: The estimated pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimator3d.ts b/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimator3d.ts
index 2e0c12f8..7d982a4a 100644
--- a/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimator3d.ts
+++ b/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimator3d.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs a DifferentialDrivePoseEstimator3d with default standard\ndeviations for the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.02 meters for x, 0.02 meters for y, 0.02 meters for z, and 0.01 radians\nfor angle. The default standard deviations of the vision measurements are\n0.1 meters for x, 0.1 meters for y, 0.1 meters for z, and 0.1 radians for\nangle.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The gyro angle of the robot.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param initialPose: The estimated initial pose.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a DifferentialDrivePoseEstimator3d.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The gyro angle of the robot.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param initialPose: The estimated initial pose.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, z position in meters, and angle in\n radians). Increase these numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, z position in\n meters, and angle in radians). Increase these numbers to trust the vision\n pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3d", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3d"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\n:param gyroAngle: The current gyro angle.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3d", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "differentialDrivePoseEstimator3d", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3d"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n\n:returns: The estimated pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3d", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "differentialDrivePoseEstimator3d", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3d"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n\n:returns: The estimated pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3d", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.DifferentialDrivePoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs a DifferentialDrivePoseEstimator3d with default standard\ndeviations for the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.02 meters for x, 0.02 meters for y, 0.02 meters for z, and 0.01 radians\nfor angle. The default standard deviations of the vision measurements are\n0.1 meters for x, 0.1 meters for y, 0.1 meters for z, and 0.1 radians for\nangle.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The gyro angle of the robot.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param initialPose: The estimated initial pose.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.DifferentialDrivePoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a DifferentialDrivePoseEstimator3d.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The gyro angle of the robot.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param initialPose: The estimated initial pose.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, z position in meters, and angle in\n radians). Increase these numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, z position in\n meters, and angle in radians). Increase these numbers to trust the vision\n pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG6": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3d", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3d"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\n:param gyroAngle: The current gyro angle.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3d", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "differentialDrivePoseEstimator3d", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3d"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n\n:returns: The estimated pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3d", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "differentialDrivePoseEstimator3d", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3d"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n\n:returns: The estimated pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3d", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimator3dBase.ts b/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimator3dBase.ts
index 0c7bc385..dfe39396 100644
--- a/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimator3dBase.ts
+++ b/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimator3dBase.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3dBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a PoseEstimator3d.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and z position\n in meters, and angle in radians). Increase these numbers to trust the\n vision pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.DifferentialDriveKinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a PoseEstimator3d.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and z position\n in meters, and angle in radians). Increase these numbers to trust the\n vision pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "differentialDrivePoseEstimator3dBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimatorBase.ts b/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimatorBase.ts
index 3b149285..131353f7 100644
--- a/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimatorBase.ts
+++ b/src/blocks/generated/class_wpimath.estimator.DifferentialDrivePoseEstimatorBase.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometryBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a PoseEstimator.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.DifferentialDriveKinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics.DifferentialDriveOdometryBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a PoseEstimator.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "differentialDrivePoseEstimatorBase", "type": "wpimath.estimator.DifferentialDrivePoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.DifferentialDrivePoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDrivePoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.ExtendedKalmanFilter_1_1_1.ts b/src/blocks/generated/class_wpimath.estimator.ExtendedKalmanFilter_1_1_1.ts
index 664dbb83..2bd12d1c 100644
--- a/src/blocks/generated/class_wpimath.estimator.ExtendedKalmanFilter_1_1_1.ts
+++ b/src/blocks/generated/class_wpimath.estimator.ExtendedKalmanFilter_1_1_1.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "h", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "stateStdDevs", "type": "Tuple[float]"}, {"name": "measurementStdDevs", "type": "Tuple[float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs an extended Kalman filter.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param f: A vector-valued function of x and u that returns\n the derivative of the state vector.\n:param h: A vector-valued function of x and u that returns\n the measurement vector.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "h", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "stateStdDevs", "type": "Tuple[float]"}, {"name": "measurementStdDevs", "type": "Tuple[float]"}, {"name": "residualFuncY", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "addFuncX", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs an extended Kalman filter.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param f: A vector-valued function of x and u that returns\n the derivative of the state vector.\n:param h: A vector-valued function of x and u that returns\n the measurement vector.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param residualFuncY: A function that computes the residual of two\n measurement vectors (i.e. it subtracts them.)\n:param addFuncX: A function that adds two state vectors.\n:param dt: Nominal discretization timestep.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "h", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "stateStdDevs", "type": "Tuple[float]"}, {"name": "measurementStdDevs", "type": "Tuple[float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs an extended Kalman filter.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param f: A vector-valued function of x and u that returns\n the derivative of the state vector.\n:param h: A vector-valued function of x and u that returns\n the measurement vector.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "h", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "stateStdDevs", "type": "Tuple[float]"}, {"name": "measurementStdDevs", "type": "Tuple[float]"}, {"name": "residualFuncY", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "addFuncX", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs an extended Kalman filter.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param f: A vector-valued function of x and u that returns\n the derivative of the state vector.\n:param h: A vector-valued function of x and u that returns\n the measurement vector.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param residualFuncY: A function that computes the residual of two\n measurement vectors (i.e. it subtracts them.)\n:param addFuncX: A function that adds two state vectors.\n:param dt: Nominal discretization timestep.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "extendedKalmanFilter_1_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_1_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_1_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_1_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.ExtendedKalmanFilter_2_1_1.ts b/src/blocks/generated/class_wpimath.estimator.ExtendedKalmanFilter_2_1_1.ts
index 213690e3..ff91e432 100644
--- a/src/blocks/generated/class_wpimath.estimator.ExtendedKalmanFilter_2_1_1.ts
+++ b/src/blocks/generated/class_wpimath.estimator.ExtendedKalmanFilter_2_1_1.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "h", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "stateStdDevs", "type": "Tuple[float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs an extended Kalman filter.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param f: A vector-valued function of x and u that returns\n the derivative of the state vector.\n:param h: A vector-valued function of x and u that returns\n the measurement vector.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "h", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "stateStdDevs", "type": "Tuple[float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float]"}, {"name": "residualFuncY", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "addFuncX", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs an extended Kalman filter.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param f: A vector-valued function of x and u that returns\n the derivative of the state vector.\n:param h: A vector-valued function of x and u that returns\n the measurement vector.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param residualFuncY: A function that computes the residual of two\n measurement vectors (i.e. it subtracts them.)\n:param addFuncX: A function that adds two state vectors.\n:param dt: Nominal discretization timestep.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "h", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "stateStdDevs", "type": "Tuple[float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs an extended Kalman filter.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param f: A vector-valued function of x and u that returns\n the derivative of the state vector.\n:param h: A vector-valued function of x and u that returns\n the measurement vector.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "h", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "stateStdDevs", "type": "Tuple[float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float]"}, {"name": "residualFuncY", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]], numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "addFuncX", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs an extended Kalman filter.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param f: A vector-valued function of x and u that returns\n the derivative of the state vector.\n:param h: A vector-valued function of x and u that returns\n the measurement vector.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param residualFuncY: A function that computes the residual of two\n measurement vectors (i.e. it subtracts them.)\n:param addFuncX: A function that adds two state vectors.\n:param dt: Nominal discretization timestep.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "extendedKalmanFilter_2_1_1", "type": "wpimath.estimator.ExtendedKalmanFilter_2_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.ExtendedKalmanFilter_2_2_2.ts b/src/blocks/generated/class_wpimath.estimator.ExtendedKalmanFilter_2_2_2.ts
index 995a94fb..1953e706 100644
--- a/src/blocks/generated/class_wpimath.estimator.ExtendedKalmanFilter_2_2_2.ts
+++ b/src/blocks/generated/class_wpimath.estimator.ExtendedKalmanFilter_2_2_2.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "h", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "stateStdDevs", "type": "Tuple[float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs an extended Kalman filter.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param f: A vector-valued function of x and u that returns\n the derivative of the state vector.\n:param h: A vector-valued function of x and u that returns\n the measurement vector.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "h", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "stateStdDevs", "type": "Tuple[float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float, float]"}, {"name": "residualFuncY", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "addFuncX", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs an extended Kalman filter.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param f: A vector-valued function of x and u that returns\n the derivative of the state vector.\n:param h: A vector-valued function of x and u that returns\n the measurement vector.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param residualFuncY: A function that computes the residual of two\n measurement vectors (i.e. it subtracts them.)\n:param addFuncX: A function that adds two state vectors.\n:param dt: Nominal discretization timestep.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "h", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "stateStdDevs", "type": "Tuple[float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs an extended Kalman filter.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param f: A vector-valued function of x and u that returns\n the derivative of the state vector.\n:param h: A vector-valued function of x and u that returns\n the measurement vector.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "args": [{"name": "f", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "h", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "stateStdDevs", "type": "Tuple[float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float, float]"}, {"name": "residualFuncY", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "addFuncX", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]], numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs an extended Kalman filter.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param f: A vector-valued function of x and u that returns\n the derivative of the state vector.\n:param h: A vector-valued function of x and u that returns\n the measurement vector.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param residualFuncY: A function that computes the residual of two\n measurement vectors (i.e. it subtracts them.)\n:param addFuncX: A function that adds two state vectors.\n:param dt: Nominal discretization timestep.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "extendedKalmanFilter_2_2_2", "type": "wpimath.estimator.ExtendedKalmanFilter_2_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.ExtendedKalmanFilter_2_2_2", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExtendedKalmanFilter_2_2_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.KalmanFilter_1_1_1.ts b/src/blocks/generated/class_wpimath.estimator.KalmanFilter_1_1_1.ts
index 21458c13..372f36cb 100644
--- a/src/blocks/generated/class_wpimath.estimator.KalmanFilter_1_1_1.ts
+++ b/src/blocks/generated/class_wpimath.estimator.KalmanFilter_1_1_1.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "stateStdDevs", "type": "Tuple[float]"}, {"name": "measurementStdDevs", "type": "Tuple[float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a Kalman filter with the given plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param plant: The plant used for the prediction step.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.\n @throws std::invalid_argument If the system is undetectable.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.KalmanFilter_1_1_1", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "stateStdDevs", "type": "Tuple[float]"}, {"name": "measurementStdDevs", "type": "Tuple[float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a Kalman filter with the given plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param plant: The plant used for the prediction step.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.\n @throws std::invalid_argument If the system is undetectable.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath.estimator.KalmanFilter_1_1_1"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath.estimator.KalmanFilter_1_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath.estimator.KalmanFilter_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath.estimator.KalmanFilter_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath.estimator.KalmanFilter_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath.estimator.KalmanFilter_1_1_1"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath.estimator.KalmanFilter_1_1_1"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath.estimator.KalmanFilter_1_1_1"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath.estimator.KalmanFilter_1_1_1"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath.estimator.KalmanFilter_1_1_1"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_1_1_1", "type": "wpimath.estimator.KalmanFilter_1_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_1_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.KalmanFilter_2_1_1.ts b/src/blocks/generated/class_wpimath.estimator.KalmanFilter_2_1_1.ts
index 12623abb..ad6ba626 100644
--- a/src/blocks/generated/class_wpimath.estimator.KalmanFilter_2_1_1.ts
+++ b/src/blocks/generated/class_wpimath.estimator.KalmanFilter_2_1_1.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "stateStdDevs", "type": "Tuple[float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a Kalman filter with the given plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param plant: The plant used for the prediction step.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.\n @throws std::invalid_argument If the system is undetectable.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.KalmanFilter_2_1_1", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "stateStdDevs", "type": "Tuple[float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a Kalman filter with the given plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param plant: The plant used for the prediction step.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.\n @throws std::invalid_argument If the system is undetectable.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath.estimator.KalmanFilter_2_1_1"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath.estimator.KalmanFilter_2_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath.estimator.KalmanFilter_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath.estimator.KalmanFilter_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath.estimator.KalmanFilter_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath.estimator.KalmanFilter_2_1_1"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath.estimator.KalmanFilter_2_1_1"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath.estimator.KalmanFilter_2_1_1"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath.estimator.KalmanFilter_2_1_1"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath.estimator.KalmanFilter_2_1_1"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_2_1_1", "type": "wpimath.estimator.KalmanFilter_2_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.KalmanFilter_2_2_2.ts b/src/blocks/generated/class_wpimath.estimator.KalmanFilter_2_2_2.ts
index 7cdc2c94..f5f0309f 100644
--- a/src/blocks/generated/class_wpimath.estimator.KalmanFilter_2_2_2.ts
+++ b/src/blocks/generated/class_wpimath.estimator.KalmanFilter_2_2_2.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "stateStdDevs", "type": "Tuple[float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a Kalman filter with the given plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param plant: The plant used for the prediction step.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.\n @throws std::invalid_argument If the system is undetectable.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.KalmanFilter_2_2_2", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "stateStdDevs", "type": "Tuple[float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a Kalman filter with the given plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param plant: The plant used for the prediction step.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.\n @throws std::invalid_argument If the system is undetectable.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath.estimator.KalmanFilter_2_2_2"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath.estimator.KalmanFilter_2_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath.estimator.KalmanFilter_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath.estimator.KalmanFilter_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath.estimator.KalmanFilter_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath.estimator.KalmanFilter_2_2_2"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath.estimator.KalmanFilter_2_2_2"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath.estimator.KalmanFilter_2_2_2"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath.estimator.KalmanFilter_2_2_2"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath.estimator.KalmanFilter_2_2_2"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_2_2_2", "type": "wpimath.estimator.KalmanFilter_2_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_2_2_2", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.KalmanFilter_3_2_3.ts b/src/blocks/generated/class_wpimath.estimator.KalmanFilter_3_2_3.ts
index 079d5293..abb9d9a5 100644
--- a/src/blocks/generated/class_wpimath.estimator.KalmanFilter_3_2_3.ts
+++ b/src/blocks/generated/class_wpimath.estimator.KalmanFilter_3_2_3.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float, float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a Kalman filter with the given plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param plant: The plant used for the prediction step.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.\n @throws std::invalid_argument If the system is undetectable.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[3, 3]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[3, 3]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.KalmanFilter_3_2_3", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_3_2_3"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "measurementStdDevs", "type": "Tuple[float, float, float]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a Kalman filter with the given plant.\n\nSee\nhttps://docs.wpilib.org/en/stable/docs/software/advanced-controls/state-space/state-space-observers.html#process-and-measurement-noise-covariance-matrices\nfor how to select the standard deviations.\n\n:param plant: The plant used for the prediction step.\n:param stateStdDevs: Standard deviations of model states.\n:param measurementStdDevs: Standard deviations of measurements.\n:param dt: Nominal discretization timestep.\n @throws std::invalid_argument If the system is undetectable.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath.estimator.KalmanFilter_3_2_3"}], "tooltip": "Returns the error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath.estimator.KalmanFilter_3_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the error covariance matrix P.\n\n:param i: Row of P.\n:param j: Column of P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "P"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath.estimator.KalmanFilter_3_2_3"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath.estimator.KalmanFilter_3_2_3"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "R", "type": "numpy.ndarray[numpy.float64[3, 3]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\nThis is useful for when the measurement noise covariances vary.\n\n:param u: Same control input used in the predict step.\n:param y: Measurement vector.\n:param R: Continuous measurement noise covariance matrix.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath.estimator.KalmanFilter_3_2_3"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Project the model into the future with a new control input u.\n\n:param u: New control input from controller.\n:param dt: Timestep for prediction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath.estimator.KalmanFilter_3_2_3"}], "tooltip": "Resets the observer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath.estimator.KalmanFilter_3_2_3"}, {"name": "P", "type": "numpy.ndarray[numpy.float64[3, 3]]"}], "tooltip": "Set the current error covariance matrix P.\n\n:param P: The error covariance matrix P.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "setP"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath.estimator.KalmanFilter_3_2_3"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Set initial state estimate x-hat.\n\n:param xHat: The state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath.estimator.KalmanFilter_3_2_3"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath.estimator.KalmanFilter_3_2_3"}], "tooltip": "Returns the state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "kalmanFilter_3_2_3", "type": "wpimath.estimator.KalmanFilter_3_2_3"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.KalmanFilter_3_2_3", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimator.ts b/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimator.ts
index e08b298d..047b6b44 100644
--- a/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimator.ts
+++ b/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimator.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a MecanumDrivePoseEstimator with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, and 0.1 radians for heading.\nThe default standard deviations of the vision measurements are\n0.45 meters for x, 0.45 meters for y, and 0.45 radians for heading.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distance measured by each wheel.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a MecanumDrivePoseEstimator.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distance measured by each wheel.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.MecanumDrivePoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a MecanumDrivePoseEstimator with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, and 0.1 radians for heading.\nThe default standard deviations of the vision measurements are\n0.45 meters for x, 0.45 meters for y, and 0.45 radians for heading.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distance measured by each wheel.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.MecanumDrivePoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a MecanumDrivePoseEstimator.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distance measured by each wheel.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimator3d.ts b/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimator3d.ts
index f39dfdb9..32a61238 100644
--- a/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimator3d.ts
+++ b/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimator3d.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs a MecanumDrivePoseEstimator3d with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, 0.1 meters for z, and 0.1 radians for\nangle. The default standard deviations of the vision measurements are 0.45\nmeters for x, 0.45 meters for y, 0.45 meters for z, and 0.45 radians for\nangle.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distance measured by each wheel.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a MecanumDrivePoseEstimator3d.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distance measured by each wheel.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, z position in meters, and angle in\n radians). Increase these numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, z position in\n meters, and angle in radians). Increase these numbers to trust the vision\n pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.MecanumDrivePoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs a MecanumDrivePoseEstimator3d with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, 0.1 meters for z, and 0.1 radians for\nangle. The default standard deviations of the vision measurements are 0.45\nmeters for x, 0.45 meters for y, 0.45 meters for z, and 0.45 radians for\nangle.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distance measured by each wheel.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.MecanumDrivePoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a MecanumDrivePoseEstimator3d.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distance measured by each wheel.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, z position in meters, and angle in\n radians). Increase these numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, z position in\n meters, and angle in radians). Increase these numbers to trust the vision\n pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimator3dBase.ts b/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimator3dBase.ts
index b09b0494..46c9f513 100644
--- a/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimator3dBase.ts
+++ b/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimator3dBase.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a PoseEstimator3d.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and z position\n in meters, and angle in radians). Increase these numbers to trust the\n vision pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a PoseEstimator3d.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and z position\n in meters, and angle in radians). Increase these numbers to trust the\n vision pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "mecanumDrivePoseEstimator3dBase", "type": "wpimath.estimator.MecanumDrivePoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimatorBase.ts b/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimatorBase.ts
index 88d7d890..6373f4c3 100644
--- a/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimatorBase.ts
+++ b/src/blocks/generated/class_wpimath.estimator.MecanumDrivePoseEstimatorBase.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a PoseEstimator.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath._controls._controls.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a PoseEstimator.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "mecanumDrivePoseEstimatorBase", "type": "wpimath.estimator.MecanumDrivePoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.MecanumDrivePoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDrivePoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimator.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimator.ts
index 189837f7..a1b1e11a 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimator.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimator.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, and 0.1 radians for heading.\nThe default standard deviations of the vision measurements are\n0.9 meters for x, 0.9 meters for y, and 0.9 radians for heading.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive2PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, and 0.1 radians for heading.\nThe default standard deviations of the vision measurements are\n0.9 meters for x, 0.9 meters for y, and 0.9 radians for heading.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive2PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimator3d.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimator3d.ts
index 9862be35..ddb29be2 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimator3d.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimator3d.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, 0.1 meters for z, and 0.1 radians for\nangle. The default standard deviations of the vision measurements are 0.9\nmeters for x, 0.9 meters for y, 0.9 meters for z, and 0.9 radians for\nangle.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive2PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, 0.1 meters for z, and 0.1 radians for\nangle. The default standard deviations of the vision measurements are 0.9\nmeters for x, 0.9 meters for y, 0.9 meters for z, and 0.9 radians for\nangle.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive2PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimator3dBase.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimator3dBase.ts
index 9e5d6b94..39005841 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimator3dBase.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimator3dBase.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a PoseEstimator3d.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and z position\n in meters, and angle in radians). Increase these numbers to trust the\n vision pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a PoseEstimator3d.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and z position\n in meters, and angle in radians). Increase these numbers to trust the\n vision pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive2PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimatorBase.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimatorBase.ts
index 99eda3e2..a9fefe28 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimatorBase.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive2PoseEstimatorBase.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a PoseEstimator.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a PoseEstimator.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive2PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive2PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive2PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimator.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimator.ts
index 2a497e74..c9c25adc 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimator.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimator.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, and 0.1 radians for heading.\nThe default standard deviations of the vision measurements are\n0.9 meters for x, 0.9 meters for y, and 0.9 radians for heading.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive3PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, and 0.1 radians for heading.\nThe default standard deviations of the vision measurements are\n0.9 meters for x, 0.9 meters for y, and 0.9 radians for heading.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive3PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimator3d.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimator3d.ts
index 3e5ba738..ccd5970b 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimator3d.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimator3d.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, 0.1 meters for z, and 0.1 radians for\nangle. The default standard deviations of the vision measurements are 0.9\nmeters for x, 0.9 meters for y, 0.9 meters for z, and 0.9 radians for\nangle.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive3PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, 0.1 meters for z, and 0.1 radians for\nangle. The default standard deviations of the vision measurements are 0.9\nmeters for x, 0.9 meters for y, 0.9 meters for z, and 0.9 radians for\nangle.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive3PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimator3dBase.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimator3dBase.ts
index b302d9e8..a10fe26c 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimator3dBase.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimator3dBase.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a PoseEstimator3d.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and z position\n in meters, and angle in radians). Increase these numbers to trust the\n vision pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a PoseEstimator3d.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and z position\n in meters, and angle in radians). Increase these numbers to trust the\n vision pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive3PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimatorBase.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimatorBase.ts
index 22e20cf7..7ac6518f 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimatorBase.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive3PoseEstimatorBase.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a PoseEstimator.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a PoseEstimator.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive3PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive3PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive3PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimator.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimator.ts
index cc6ad984..f53c8047 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimator.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimator.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, and 0.1 radians for heading.\nThe default standard deviations of the vision measurements are\n0.9 meters for x, 0.9 meters for y, and 0.9 radians for heading.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive4PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, and 0.1 radians for heading.\nThe default standard deviations of the vision measurements are\n0.9 meters for x, 0.9 meters for y, and 0.9 radians for heading.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive4PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimator3d.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimator3d.ts
index f49e47eb..93fae5da 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimator3d.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimator3d.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, 0.1 meters for z, and 0.1 radians for\nangle. The default standard deviations of the vision measurements are 0.9\nmeters for x, 0.9 meters for y, 0.9 meters for z, and 0.9 radians for\nangle.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive4PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, 0.1 meters for z, and 0.1 radians for\nangle. The default standard deviations of the vision measurements are 0.9\nmeters for x, 0.9 meters for y, 0.9 meters for z, and 0.9 radians for\nangle.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive4PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimator3dBase.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimator3dBase.ts
index 911b4ce2..b6974e27 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimator3dBase.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimator3dBase.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a PoseEstimator3d.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and z position\n in meters, and angle in radians). Increase these numbers to trust the\n vision pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a PoseEstimator3d.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and z position\n in meters, and angle in radians). Increase these numbers to trust the\n vision pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive4PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimatorBase.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimatorBase.ts
index c56ed7f4..68d74a11 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimatorBase.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive4PoseEstimatorBase.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a PoseEstimator.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a PoseEstimator.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive4PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive4PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive4PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimator.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimator.ts
index 04b89e91..98d57b1b 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimator.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimator.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, and 0.1 radians for heading.\nThe default standard deviations of the vision measurements are\n0.9 meters for x, 0.9 meters for y, and 0.9 radians for heading.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive6PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, and 0.1 radians for heading.\nThe default standard deviations of the vision measurements are\n0.9 meters for x, 0.9 meters for y, and 0.9 radians for heading.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive6PoseEstimator", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimator3d.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimator3d.ts
index 79dbafad..05b0e434 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimator3d.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimator3d.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, 0.1 meters for z, and 0.1 radians for\nangle. The default standard deviations of the vision measurements are 0.9\nmeters for x, 0.9 meters for y, 0.9 meters for z, and 0.9 radians for\nangle.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive6PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d with default standard deviations\nfor the model and vision measurements.\n\nThe default standard deviations of the model states are\n0.1 meters for x, 0.1 meters for y, 0.1 meters for z, and 0.1 radians for\nangle. The default standard deviations of the vision measurements are 0.9\nmeters for x, 0.9 meters for y, 0.9 meters for z, and 0.9 radians for\nangle.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive6PoseEstimator3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a SwerveDrivePoseEstimator3d.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param gyroAngle: The current gyro angle.\n:param modulePositions: The current distance and rotation measurements of\n the swerve modules.\n:param initialPose: The starting pose estimate.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimator3dBase.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimator3dBase.ts
index 8ef84a1c..289fe302 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimator3dBase.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimator3dBase.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a PoseEstimator3d.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and z position\n in meters, and angle in radians). Increase these numbers to trust the\n vision pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Constructs a PoseEstimator3d.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and z position\n in meters, and angle in radians). Increase these numbers to trust the\n vision pose measurement less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose3d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetFPGATimestamp(). This means that you should use\n frc::Timer::GetFPGATimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive6PoseEstimator3dBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimator3dBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimator3dBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimatorBase.ts b/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimatorBase.ts
index 8d3250a1..1302b08b 100644
--- a/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimatorBase.ts
+++ b/src/blocks/generated/class_wpimath.estimator.SwerveDrive6PoseEstimatorBase.ts
@@ -11,18 +11,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 12 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a PoseEstimator.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath._controls._controls.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6KinematicsBase"}, {"name": "odometry", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}, {"name": "stateStdDevs", "type": "Tuple[float, float, float]"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a PoseEstimator.\n\n@warning The initial pose estimate will always be the default pose,\nregardless of the odometry's current pose.\n\n:param kinematics: A correctly-configured kinematics object for your\n drivetrain.\n:param odometry: A correctly-configured odometry object for your drivetrain.\n:param stateStdDevs: Standard deviations of the pose estimate (x position in\n meters, y position in meters, and heading in radians). Increase these\n numbers to trust your state estimate less.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": "wpimath.estimator"}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "visionRobotPose", "type": "wpimath.geometry.Pose2d"}, {"name": "timestamp", "type": "wpimath.units.seconds"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Adds a vision measurement to the Kalman Filter. This will correct\nthe odometry pose estimate while still accounting for measurement noise.\n\nThis method can be called as infrequently as you want, as long as you are\ncalling Update() every loop.\n\nTo promote stability of the pose estimate and make it robust to bad vision\ndata, we recommend only adding vision measurements that are already within\none meter or so of the current pose estimate.\n\nNote that the vision measurement standard deviations passed into this\nmethod will continue to apply to future measurements until a subsequent\ncall to SetVisionMeasurementStdDevs() or this method.\n\n:param visionRobotPose: The pose of the robot as measured by the vision\n camera.\n:param timestamp: The timestamp of the vision measurement in seconds. Note\n that if you don't use your own time source by calling UpdateWithTime(),\n then you must use a timestamp with an epoch since FPGA startup (i.e.,\n the epoch of this timestamp is the same epoch as\n frc::Timer::GetTimestamp(). This means that you should use\n frc::Timer::GetTimestamp() as your time source in this case.\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "addVisionMeasurement"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}], "tooltip": "Gets the estimated robot pose.\n\n:returns: The estimated robot pose in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "getEstimatedPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset in the user's robot code.\nThe library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n:param pose: The estimated pose of the robot on the field.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the robot's rotation.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the robot's translation.\n\n:param translation: The pose to translation to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "timestamp", "type": "wpimath.units.seconds"}], "tooltip": "Return the pose at a given timestamp, if the buffer is not empty.\n\n:param timestamp: The pose's timestamp.\n\n:returns: The pose at the given timestamp (or std::nullopt if the buffer is\n empty).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "sampleAt"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "visionMeasurementStdDevs", "type": "Tuple[float, float, float]"}], "tooltip": "Sets the pose estimator's trust in vision measurements. This might be used\nto change trust in vision measurements after the autonomous period, or to\nchange trust as distance to a vision target increases.\n\n:param visionMeasurementStdDevs: Standard deviations of the vision pose\n measurement (x position in meters, y position in meters, and heading in\n radians). Increase these numbers to trust the vision pose measurement\n less.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "setVisionMeasurementStdDevs"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive6PoseEstimatorBase", "type": "wpimath.estimator.SwerveDrive6PoseEstimatorBase"}, {"name": "currentTime", "type": "wpimath.units.seconds"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the pose estimator with wheel encoder and gyro information. This\nshould be called every loop.\n\n:param currentTime: The time at which this method was called.\n:param gyroAngle: The current gyro angle.\n:param wheelPositions: The distances traveled by the encoders.\n\n:returns: The estimated pose of the robot in meters.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.estimator.SwerveDrive6PoseEstimatorBase", "FUNC": "updateWithTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6PoseEstimatorBase"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.filter.Debouncer.ts b/src/blocks/generated/class_wpimath.filter.Debouncer.ts
index ea2762af..88eab7bd 100644
--- a/src/blocks/generated/class_wpimath.filter.Debouncer.ts
+++ b/src/blocks/generated/class_wpimath.filter.Debouncer.ts
@@ -13,8 +13,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDebouncer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.filter._filter.Debouncer", "args": [{"name": "debounceTime", "type": "wpimath.units.seconds"}, {"name": "type", "type": "wpimath.filter._filter.Debouncer.DebounceType"}], "tooltip": "Creates a new Debouncer.\n\n:param debounceTime: The number of seconds the value must change from\n baseline for the filtered value to change.\n:param type: Which type of state change the debouncing will be\n performed on.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.Debouncer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDebounceType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "debouncer", "type": "wpimath.filter._filter.Debouncer"}, {"name": "input", "type": "bool"}], "tooltip": "Applies the debouncer to the input stream.\n\n:param input: The current value of the input stream.\n\n:returns: The debounced value of the input stream.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.Debouncer", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDebouncer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDebouncer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.filter.Debouncer", "args": [{"name": "debounceTime", "type": "wpimath.units.seconds"}, {"name": "type", "type": "wpimath.filter.Debouncer.DebounceType"}], "tooltip": "Creates a new Debouncer.\n\n:param debounceTime: The number of seconds the value must change from\n baseline for the filtered value to change.\n:param type: Which type of state change the debouncing will be\n performed on.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.Debouncer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDebounceType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "debouncer", "type": "wpimath.filter.Debouncer"}, {"name": "input", "type": "bool"}], "tooltip": "Applies the debouncer to the input stream.\n\n:param input: The current value of the input stream.\n\n:returns: The debounced value of the input stream.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.Debouncer", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDebouncer"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpimath.filter.Debouncer.DebounceType", "importModule": "wpimath.filter"}, "fields": {"ENUM_TYPE": "wpimath.filter.Debouncer.DebounceType", "ENUM_VALUE": "kBoth"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpimath.filter.Debouncer.DebounceType", "importModule": "wpimath.filter"}, "fields": {"ENUM_TYPE": "wpimath.filter.Debouncer.DebounceType", "ENUM_VALUE": "kFalling"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpimath.filter.Debouncer.DebounceType", "importModule": "wpimath.filter"}, "fields": {"ENUM_TYPE": "wpimath.filter.Debouncer.DebounceType", "ENUM_VALUE": "kRising"}},
diff --git a/src/blocks/generated/class_wpimath.filter.LinearFilter.ts b/src/blocks/generated/class_wpimath.filter.LinearFilter.ts
index 7f112e60..dc1134fe 100644
--- a/src/blocks/generated/class_wpimath.filter.LinearFilter.ts
+++ b/src/blocks/generated/class_wpimath.filter.LinearFilter.ts
@@ -11,14 +11,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 8 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearFilter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.filter._filter.LinearFilter", "args": [{"name": "ffGains", "type": "List[float]"}, {"name": "fbGains", "type": "List[float]"}], "tooltip": "Create a linear FIR or IIR filter.\n\n:param ffGains: The \"feedforward\" or FIR gains.\n:param fbGains: The \"feedback\" or IIR gains.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearFilter", "type": "wpimath.filter._filter.LinearFilter"}, {"name": "input", "type": "float"}], "tooltip": "Calculates the next value of the filter.\n\n:param input: Current input value.\n\n:returns: The filtered value at this step", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearFilter"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearFilter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.filter._filter.LinearFilter", "args": [{"name": "timeConstant", "type": "float"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Creates a first-order high-pass filter of the form:\ny[n] = gain x[n] + (-gain) x[n-1] + gain y[n-1]\nwhere gain = e:sup:`-dt / T`, T is the time constant in seconds\n\nNote: T = 1 / (2\u03c0f) where f is the cutoff frequency in Hz, the frequency\nbelow which the input starts to attenuate.\n\nThis filter is stable for time constants greater than zero.\n\n:param timeConstant: The discrete-time time constant in seconds.\n:param period: The period in seconds between samples taken by the\n user.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "highPass"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearFilter", "type": "wpimath.filter._filter.LinearFilter"}], "tooltip": "Returns the last value calculated by the LinearFilter.\n\n:returns: The last value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "lastValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearFilter"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearFilter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.filter._filter.LinearFilter", "args": [{"name": "taps", "type": "int"}], "tooltip": "Creates a K-tap FIR moving average filter of the form:\ny[n] = 1/k (x[k] + x[k-1] + \u2026 + x[0])\n\nThis filter is always stable.\n\n:param taps: The number of samples to average over. Higher = smoother but\n slower\n @throws std::runtime_error if number of taps is less than 1.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "movingAverage"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearFilter", "type": "wpimath.filter._filter.LinearFilter"}], "tooltip": "Reset the filter state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearFilter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearFilter", "type": "wpimath.filter._filter.LinearFilter"}, {"name": "inputBuffer", "type": "List[float]"}, {"name": "outputBuffer", "type": "List[float]"}], "tooltip": "Resets the filter state, initializing internal buffers to the provided\nvalues.\n\nThese are the expected lengths of the buffers, depending on what type of\nlinear filter used:\n\n\n\n| Type | \nInput Buffer Size | \nOutput Buffer Size | \n
\n\n| Unspecified | \nsize of ``ffGains`` | \nsize of ``fbGains`` | \n
\n\n| Single Pole IIR | \n1 | \n1 | \n
\n\n| High-Pass | \n2 | \n1 | \n
\n\n| Moving Average | \n``taps`` | \n0 | \n
\n\n| Finite Difference | \nsize of ``stencil`` | \n0 | \n
\n\n| Backward Finite Difference | \n``Samples`` | \n0 | \n
\n
\n\n:param inputBuffer: Values to initialize input buffer.\n:param outputBuffer: Values to initialize output buffer.\n @throws std::runtime_error if size of inputBuffer or outputBuffer does not\n match the size of ffGains and fbGains provided in the constructor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearFilter"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearFilter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.filter._filter.LinearFilter", "args": [{"name": "timeConstant", "type": "float"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Creates a one-pole IIR low-pass filter of the form:\ny[n] = (1 - gain) x[n] + gain y[n-1]\nwhere gain = e:sup:`-dt / T`, T is the time constant in seconds\n\nNote: T = 1 / (2\u03c0f) where f is the cutoff frequency in Hz, the frequency\nabove which the input starts to attenuate.\n\nThis filter is stable for time constants greater than zero.\n\n:param timeConstant: The discrete-time time constant in seconds.\n:param period: The period in seconds between samples taken by the\n user.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "singlePoleIIR"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearFilter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.filter.LinearFilter", "args": [{"name": "ffGains", "type": "List[float]"}, {"name": "fbGains", "type": "List[float]"}], "tooltip": "Create a linear FIR or IIR filter.\n\n:param ffGains: The \"feedforward\" or FIR gains.\n:param fbGains: The \"feedback\" or IIR gains.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearFilter", "type": "wpimath.filter.LinearFilter"}, {"name": "input", "type": "float"}], "tooltip": "Calculates the next value of the filter.\n\n:param input: Current input value.\n\n:returns: The filtered value at this step", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearFilter"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearFilter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.filter.LinearFilter", "args": [{"name": "timeConstant", "type": "float"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Creates a first-order high-pass filter of the form:\ny[n] = gain x[n] + (-gain) x[n-1] + gain y[n-1]\nwhere gain = e:sup:`-dt / T`, T is the time constant in seconds\n\nNote: T = 1 / (2\u03c0f) where f is the cutoff frequency in Hz, the frequency\nbelow which the input starts to attenuate.\n\nThis filter is stable for time constants greater than zero.\n\n:param timeConstant: The discrete-time time constant in seconds.\n:param period: The period in seconds between samples taken by the\n user.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "highPass"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearFilter", "type": "wpimath.filter.LinearFilter"}], "tooltip": "Returns the last value calculated by the LinearFilter.\n\n:returns: The last value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "lastValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearFilter"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearFilter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.filter.LinearFilter", "args": [{"name": "taps", "type": "int"}], "tooltip": "Creates a K-tap FIR moving average filter of the form:\ny[n] = 1/k (x[k] + x[k-1] + \u2026 + x[0])\n\nThis filter is always stable.\n\n:param taps: The number of samples to average over. Higher = smoother but\n slower\n @throws std::runtime_error if number of taps is less than 1.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "movingAverage"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearFilter", "type": "wpimath.filter.LinearFilter"}], "tooltip": "Reset the filter state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearFilter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearFilter", "type": "wpimath.filter.LinearFilter"}, {"name": "inputBuffer", "type": "List[float]"}, {"name": "outputBuffer", "type": "List[float]"}], "tooltip": "Resets the filter state, initializing internal buffers to the provided\nvalues.\n\nThese are the expected lengths of the buffers, depending on what type of\nlinear filter used:\n\n\n\n| Type | \nInput Buffer Size | \nOutput Buffer Size | \n
\n\n| Unspecified | \nsize of ``ffGains`` | \nsize of ``fbGains`` | \n
\n\n| Single Pole IIR | \n1 | \n1 | \n
\n\n| High-Pass | \n2 | \n1 | \n
\n\n| Moving Average | \n``taps`` | \n0 | \n
\n\n| Finite Difference | \nsize of ``stencil`` | \n0 | \n
\n\n| Backward Finite Difference | \n``Samples`` | \n0 | \n
\n
\n\n:param inputBuffer: Values to initialize input buffer.\n:param outputBuffer: Values to initialize output buffer.\n @throws std::runtime_error if size of inputBuffer or outputBuffer does not\n match the size of ffGains and fbGains provided in the constructor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearFilter"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearFilter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.filter.LinearFilter", "args": [{"name": "timeConstant", "type": "float"}, {"name": "period", "type": "wpimath.units.seconds"}], "tooltip": "Creates a one-pole IIR low-pass filter of the form:\ny[n] = (1 - gain) x[n] + gain y[n-1]\nwhere gain = e:sup:`-dt / T`, T is the time constant in seconds\n\nNote: T = 1 / (2\u03c0f) where f is the cutoff frequency in Hz, the frequency\nabove which the input starts to attenuate.\n\nThis filter is stable for time constants greater than zero.\n\n:param timeConstant: The discrete-time time constant in seconds.\n:param period: The period in seconds between samples taken by the\n user.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.LinearFilter", "FUNC": "singlePoleIIR"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.filter.MedianFilter.ts b/src/blocks/generated/class_wpimath.filter.MedianFilter.ts
index 8f0b5c8f..72156b8a 100644
--- a/src/blocks/generated/class_wpimath.filter.MedianFilter.ts
+++ b/src/blocks/generated/class_wpimath.filter.MedianFilter.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMedianFilter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.filter._filter.MedianFilter", "args": [{"name": "size", "type": "int"}], "tooltip": "Creates a new MedianFilter.\n\n:param size: The number of samples in the moving window.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.MedianFilter"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "medianFilter", "type": "wpimath.filter._filter.MedianFilter"}, {"name": "next", "type": "float"}], "tooltip": "Calculates the moving-window median for the next value of the input stream.\n\n:param next: The next input value.\n\n:returns: The median of the moving window, updated to include the next value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.MedianFilter", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMedianFilter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "medianFilter", "type": "wpimath.filter._filter.MedianFilter"}], "tooltip": "Returns the last value calculated by the MedianFilter.\n\n:returns: The last value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.MedianFilter", "FUNC": "lastValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMedianFilter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "medianFilter", "type": "wpimath.filter._filter.MedianFilter"}], "tooltip": "Resets the filter, clearing the window of all elements.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.MedianFilter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMedianFilter"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMedianFilter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.filter.MedianFilter", "args": [{"name": "size", "type": "int"}], "tooltip": "Creates a new MedianFilter.\n\n:param size: The number of samples in the moving window.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.MedianFilter"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "medianFilter", "type": "wpimath.filter.MedianFilter"}, {"name": "next", "type": "float"}], "tooltip": "Calculates the moving-window median for the next value of the input stream.\n\n:param next: The next input value.\n\n:returns: The median of the moving window, updated to include the next value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.MedianFilter", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMedianFilter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "medianFilter", "type": "wpimath.filter.MedianFilter"}], "tooltip": "Returns the last value calculated by the MedianFilter.\n\n:returns: The last value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.MedianFilter", "FUNC": "lastValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMedianFilter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "medianFilter", "type": "wpimath.filter.MedianFilter"}], "tooltip": "Resets the filter, clearing the window of all elements.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.MedianFilter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMedianFilter"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.filter.SlewRateLimiter.ts b/src/blocks/generated/class_wpimath.filter.SlewRateLimiter.ts
index ea4948af..34b35f9c 100644
--- a/src/blocks/generated/class_wpimath.filter.SlewRateLimiter.ts
+++ b/src/blocks/generated/class_wpimath.filter.SlewRateLimiter.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySlewRateLimiter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.filter._filter.SlewRateLimiter", "args": [{"name": "positiveRateLimit", "type": "wpimath.units.units_per_second"}, {"name": "negativeRateLimit", "type": "wpimath.units.units_per_second"}, {"name": "initialValue", "type": "float"}], "tooltip": "Creates a new SlewRateLimiter with the given positive and negative rate\nlimits and initial value.\n\n:param positiveRateLimit: The rate-of-change limit in the positive\n direction, in units per second. This is expected\n to be positive.\n:param negativeRateLimit: The rate-of-change limit in the negative\n direction, in units per second. This is expected\n to be negative.\n:param initialValue: The initial value of the input.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.SlewRateLimiter"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySlewRateLimiter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.filter._filter.SlewRateLimiter", "args": [{"name": "rateLimit", "type": "wpimath.units.units_per_second"}], "tooltip": "Creates a new SlewRateLimiter with the given positive rate limit and\nnegative rate limit of -rateLimit.\n\n:param rateLimit: The rate-of-change limit.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.SlewRateLimiter"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "slewRateLimiter", "type": "wpimath.filter._filter.SlewRateLimiter"}, {"name": "input", "type": "float"}], "tooltip": "Filters the input to limit its slew rate.\n\n:param input: The input value whose slew rate is to be limited.\n\n:returns: The filtered value, which will not change faster than the slew\n rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.SlewRateLimiter", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySlewRateLimiter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "slewRateLimiter", "type": "wpimath.filter._filter.SlewRateLimiter"}], "tooltip": "Returns the value last calculated by the SlewRateLimiter.\n\n:returns: The last value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.SlewRateLimiter", "FUNC": "lastValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySlewRateLimiter"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "slewRateLimiter", "type": "wpimath.filter._filter.SlewRateLimiter"}, {"name": "value", "type": "float"}], "tooltip": "Resets the slew rate limiter to the specified value; ignores the rate limit\nwhen doing so.\n\n:param value: The value to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.SlewRateLimiter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySlewRateLimiter"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySlewRateLimiter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.filter.SlewRateLimiter", "args": [{"name": "positiveRateLimit", "type": "wpimath.units.units_per_second"}, {"name": "negativeRateLimit", "type": "wpimath.units.units_per_second"}, {"name": "initialValue", "type": "float"}], "tooltip": "Creates a new SlewRateLimiter with the given positive and negative rate\nlimits and initial value.\n\n:param positiveRateLimit: The rate-of-change limit in the positive\n direction, in units per second. This is expected\n to be positive.\n:param negativeRateLimit: The rate-of-change limit in the negative\n direction, in units per second. This is expected\n to be negative.\n:param initialValue: The initial value of the input.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.SlewRateLimiter"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySlewRateLimiter"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.filter.SlewRateLimiter", "args": [{"name": "rateLimit", "type": "wpimath.units.units_per_second"}], "tooltip": "Creates a new SlewRateLimiter with the given positive rate limit and\nnegative rate limit of -rateLimit.\n\n:param rateLimit: The rate-of-change limit.", "importModule": "wpimath.filter"}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.SlewRateLimiter"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "slewRateLimiter", "type": "wpimath.filter.SlewRateLimiter"}, {"name": "input", "type": "float"}], "tooltip": "Filters the input to limit its slew rate.\n\n:param input: The input value whose slew rate is to be limited.\n\n:returns: The filtered value, which will not change faster than the slew\n rate.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.SlewRateLimiter", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySlewRateLimiter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "slewRateLimiter", "type": "wpimath.filter.SlewRateLimiter"}], "tooltip": "Returns the value last calculated by the SlewRateLimiter.\n\n:returns: The last value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.SlewRateLimiter", "FUNC": "lastValue"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySlewRateLimiter"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "slewRateLimiter", "type": "wpimath.filter.SlewRateLimiter"}, {"name": "value", "type": "float"}], "tooltip": "Resets the slew rate limiter to the specified value; ignores the rate limit\nwhen doing so.\n\n:param value: The value to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.filter.SlewRateLimiter", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySlewRateLimiter"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.CoordinateAxis.ts b/src/blocks/generated/class_wpimath.geometry.CoordinateAxis.ts
index ac279032..7e4dda08 100644
--- a/src/blocks/generated/class_wpimath.geometry.CoordinateAxis.ts
+++ b/src/blocks/generated/class_wpimath.geometry.CoordinateAxis.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.CoordinateAxis", "args": [{"name": "x", "type": "float"}, {"name": "y", "type": "float"}, {"name": "z", "type": "float"}], "tooltip": "Constructs a coordinate system axis within the NWU coordinate system and\nnormalizes it.\n\n:param x: The x component.\n:param y: The y component.\n:param z: The z component.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.CoordinateAxis", "args": [], "tooltip": "Returns a coordinate axis corresponding to -Z in the NWU coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis", "FUNC": "D"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.CoordinateAxis", "args": [], "tooltip": "Returns a coordinate axis corresponding to -Y in the NWU coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis", "FUNC": "E"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.CoordinateAxis", "args": [], "tooltip": "Returns a coordinate axis corresponding to +X in the NWU coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis", "FUNC": "N"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.CoordinateAxis", "args": [], "tooltip": "Returns a coordinate axis corresponding to -X in the NWU coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis", "FUNC": "S"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.CoordinateAxis", "args": [], "tooltip": "Returns a coordinate axis corresponding to +Z in the NWU coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis", "FUNC": "U"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.CoordinateAxis", "args": [], "tooltip": "Returns a coordinate axis corresponding to +Y in the NWU coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis", "FUNC": "W"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.CoordinateAxis", "args": [{"name": "x", "type": "float"}, {"name": "y", "type": "float"}, {"name": "z", "type": "float"}], "tooltip": "Constructs a coordinate system axis within the NWU coordinate system and\nnormalizes it.\n\n:param x: The x component.\n:param y: The y component.\n:param z: The z component.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.CoordinateAxis", "args": [], "tooltip": "Returns a coordinate axis corresponding to -Z in the NWU coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis", "FUNC": "D"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.CoordinateAxis", "args": [], "tooltip": "Returns a coordinate axis corresponding to -Y in the NWU coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis", "FUNC": "E"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.CoordinateAxis", "args": [], "tooltip": "Returns a coordinate axis corresponding to +X in the NWU coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis", "FUNC": "N"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.CoordinateAxis", "args": [], "tooltip": "Returns a coordinate axis corresponding to -X in the NWU coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis", "FUNC": "S"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.CoordinateAxis", "args": [], "tooltip": "Returns a coordinate axis corresponding to +Z in the NWU coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis", "FUNC": "U"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateAxis"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.CoordinateAxis", "args": [], "tooltip": "Returns a coordinate axis corresponding to +Y in the NWU coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateAxis", "FUNC": "W"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.CoordinateSystem.ts b/src/blocks/generated/class_wpimath.geometry.CoordinateSystem.ts
index 636cd898..baab4cc1 100644
--- a/src/blocks/generated/class_wpimath.geometry.CoordinateSystem.ts
+++ b/src/blocks/generated/class_wpimath.geometry.CoordinateSystem.ts
@@ -11,14 +11,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 8 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateSystem"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.CoordinateSystem", "args": [{"name": "positiveX", "type": "wpimath.geometry._geometry.CoordinateAxis"}, {"name": "positiveY", "type": "wpimath.geometry._geometry.CoordinateAxis"}, {"name": "positiveZ", "type": "wpimath.geometry._geometry.CoordinateAxis"}], "tooltip": "Constructs a coordinate system with the given cardinal directions for each\naxis.\n\n:param positiveX: The cardinal direction of the positive x-axis.\n:param positiveY: The cardinal direction of the positive y-axis.\n:param positiveZ: The cardinal direction of the positive z-axis.\n @throws std::domain_error if the coordinate system isn't special orthogonal", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateAxis"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateAxis"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateAxis"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateSystem"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.CoordinateSystem", "args": [], "tooltip": "Returns an instance of the East-Down-North (EDN) coordinate system.\n\nThe +X axis is east, the +Y axis is down, and the +Z axis is north.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "EDN"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateSystem"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.CoordinateSystem", "args": [], "tooltip": "Returns an instance of the NED coordinate system.\n\nThe +X axis is north, the +Y axis is east, and the +Z axis is down.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "NED"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateSystem"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.CoordinateSystem", "args": [], "tooltip": "Returns an instance of the North-West-Up (NWU) coordinate system.\n\nThe +X axis is north, the +Y axis is west, and the +Z axis is up.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "NWU"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Translation3d", "args": [{"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}, {"name": "from_", "type": "wpimath.geometry._geometry.CoordinateSystem"}, {"name": "to", "type": "wpimath.geometry._geometry.CoordinateSystem"}], "tooltip": "Converts the given translation from one coordinate system to another.\n\n:param translation: The translation to convert.\n:param from_: The coordinate system the translation starts in.\n:param to: The coordinate system to which to convert.\n\n:returns: The given translation in the desired coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "convert"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [{"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "from_", "type": "wpimath.geometry._geometry.CoordinateSystem"}, {"name": "to", "type": "wpimath.geometry._geometry.CoordinateSystem"}], "tooltip": "Converts the given rotation from one coordinate system to another.\n\n:param rotation: The rotation to convert.\n:param from_: The coordinate system the rotation starts in.\n:param to: The coordinate system to which to convert.\n\n:returns: The given rotation in the desired coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "convert"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "from_", "type": "wpimath.geometry._geometry.CoordinateSystem"}, {"name": "to", "type": "wpimath.geometry._geometry.CoordinateSystem"}], "tooltip": "Converts the given pose from one coordinate system to another.\n\n:param pose: The pose to convert.\n:param from_: The coordinate system the pose starts in.\n:param to: The coordinate system to which to convert.\n\n:returns: The given pose in the desired coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "convert"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Transform3d", "args": [{"name": "transform", "type": "wpimath.geometry._geometry.Transform3d"}, {"name": "from_", "type": "wpimath.geometry._geometry.CoordinateSystem"}, {"name": "to", "type": "wpimath.geometry._geometry.CoordinateSystem"}], "tooltip": "Converts the given transform from one coordinate system to another.\n\n:param transform: The transform to convert.\n:param from_: The coordinate system the transform starts in.\n:param to: The coordinate system to which to convert.\n\n:returns: The given transform in the desired coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "convert"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateSystem"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.CoordinateSystem", "args": [{"name": "positiveX", "type": "wpimath.geometry.CoordinateAxis"}, {"name": "positiveY", "type": "wpimath.geometry.CoordinateAxis"}, {"name": "positiveZ", "type": "wpimath.geometry.CoordinateAxis"}], "tooltip": "Constructs a coordinate system with the given cardinal directions for each\naxis.\n\n:param positiveX: The cardinal direction of the positive x-axis.\n:param positiveY: The cardinal direction of the positive y-axis.\n:param positiveZ: The cardinal direction of the positive z-axis.\n @throws std::domain_error if the coordinate system isn't special orthogonal", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateAxis"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateAxis"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateAxis"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateSystem"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.CoordinateSystem", "args": [], "tooltip": "Returns an instance of the East-Down-North (EDN) coordinate system.\n\nThe +X axis is east, the +Y axis is down, and the +Z axis is north.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "EDN"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateSystem"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.CoordinateSystem", "args": [], "tooltip": "Returns an instance of the NED coordinate system.\n\nThe +X axis is north, the +Y axis is east, and the +Z axis is down.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "NED"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCoordinateSystem"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.CoordinateSystem", "args": [], "tooltip": "Returns an instance of the North-West-Up (NWU) coordinate system.\n\nThe +X axis is north, the +Y axis is west, and the +Z axis is up.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "NWU"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Translation3d", "args": [{"name": "translation", "type": "wpimath.geometry.Translation3d"}, {"name": "from_", "type": "wpimath.geometry.CoordinateSystem"}, {"name": "to", "type": "wpimath.geometry.CoordinateSystem"}], "tooltip": "Converts the given translation from one coordinate system to another.\n\n:param translation: The translation to convert.\n:param from_: The coordinate system the translation starts in.\n:param to: The coordinate system to which to convert.\n\n:returns: The given translation in the desired coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "convert"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Rotation3d", "args": [{"name": "rotation", "type": "wpimath.geometry.Rotation3d"}, {"name": "from_", "type": "wpimath.geometry.CoordinateSystem"}, {"name": "to", "type": "wpimath.geometry.CoordinateSystem"}], "tooltip": "Converts the given rotation from one coordinate system to another.\n\n:param rotation: The rotation to convert.\n:param from_: The coordinate system the rotation starts in.\n:param to: The coordinate system to which to convert.\n\n:returns: The given rotation in the desired coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "convert"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "pose", "type": "wpimath.geometry.Pose3d"}, {"name": "from_", "type": "wpimath.geometry.CoordinateSystem"}, {"name": "to", "type": "wpimath.geometry.CoordinateSystem"}], "tooltip": "Converts the given pose from one coordinate system to another.\n\n:param pose: The pose to convert.\n:param from_: The coordinate system the pose starts in.\n:param to: The coordinate system to which to convert.\n\n:returns: The given pose in the desired coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "convert"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Transform3d", "args": [{"name": "transform", "type": "wpimath.geometry.Transform3d"}, {"name": "from_", "type": "wpimath.geometry.CoordinateSystem"}, {"name": "to", "type": "wpimath.geometry.CoordinateSystem"}], "tooltip": "Converts the given transform from one coordinate system to another.\n\n:param transform: The transform to convert.\n:param from_: The coordinate system the transform starts in.\n:param to: The coordinate system to which to convert.\n\n:returns: The given transform in the desired coordinate system.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.CoordinateSystem", "FUNC": "convert"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCoordinateSystem"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Ellipse2d.ts b/src/blocks/generated/class_wpimath.geometry.Ellipse2d.ts
index 42f08bb1..fefee68a 100644
--- a/src/blocks/generated/class_wpimath.geometry.Ellipse2d.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Ellipse2d.ts
@@ -18,18 +18,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Ellipse2d", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "ellipse2d", "selfType": "wpimath.geometry.Ellipse2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "VAR": "ysemiaxis"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Ellipse2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "ellipse2d", "selfType": "wpimath.geometry.Ellipse2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "VAR": "xsemiaxis_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Ellipse2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "ellipse2d", "selfType": "wpimath.geometry.Ellipse2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "VAR": "ysemiaxis_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipse2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Ellipse2d", "args": [{"name": "center", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "xSemiAxis", "type": "wpimath.units.meters"}, {"name": "ySemiAxis", "type": "wpimath.units.meters"}], "tooltip": "Constructs an ellipse around a center point and two semi-axes, a horizontal\nand vertical one.\n\n:param center: The center of the ellipse.\n:param xSemiAxis: The x semi-axis.\n:param ySemiAxis: The y semi-axis.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipse2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Ellipse2d", "args": [{"name": "center", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "radius", "type": "float"}], "tooltip": "Constructs a perfectly circular ellipse with the specified radius.\n\n:param center: The center of the circle.\n:param radius: The radius of the circle.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "ellipse2d", "type": "wpimath.geometry._geometry.Ellipse2d"}], "tooltip": "Returns the center of the ellipse.\n\n:returns: The center of the ellipse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "center"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "ellipse2d", "type": "wpimath.geometry._geometry.Ellipse2d"}, {"name": "point", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Checks if a point is contained within this ellipse. This is inclusive, if\nthe point lies on the circumference this will return ``true``.\n\n:param point: The point to check.\n\n:returns: True, if the point is within or on the ellipse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "contains"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "ellipse2d", "type": "wpimath.geometry._geometry.Ellipse2d"}, {"name": "point", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Returns the distance between the perimeter of the ellipse and the point.\n\n:param point: The point to check.\n\n:returns: The distance (0, if the point is contained by the ellipse)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "distance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d]", "args": [{"name": "ellipse2d", "type": "wpimath.geometry._geometry.Ellipse2d"}], "tooltip": "Returns the focal points of the ellipse. In a perfect circle, this will\nalways return the center.\n\n:returns: The focal points.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "focalPoints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipse2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Ellipse2d", "args": [{"name": "center", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "xSemiAxis", "type": "wpimath.units.feet"}, {"name": "ySemiAxis", "type": "wpimath.units.feet"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "fromFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "ellipse2d", "type": "wpimath.geometry._geometry.Ellipse2d"}, {"name": "point", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Checks if a point is intersected by this ellipse's circumference.\n\n:param point: The point to check.\n\n:returns: True, if this ellipse's circumference intersects the point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "intersects"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "ellipse2d", "type": "wpimath.geometry._geometry.Ellipse2d"}, {"name": "point", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Returns the nearest point that is contained within the ellipse.\n\n:param point: The point that this will find the nearest point to.\n\n:returns: A new point that is nearest to ``point`` and contained in the\n ellipse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "nearest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipse2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Ellipse2d", "args": [{"name": "ellipse2d", "type": "wpimath.geometry._geometry.Ellipse2d"}, {"name": "other", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Rotates the center of the ellipse and returns the new ellipse.\n\n:param other: The rotation to transform by.\n\n:returns: The rotated ellipse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "ellipse2d", "type": "wpimath.geometry._geometry.Ellipse2d"}], "tooltip": "Returns the rotational component of the ellipse.\n\n:returns: The rotational component of the ellipse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "rotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipse2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Ellipse2d", "args": [{"name": "ellipse2d", "type": "wpimath.geometry._geometry.Ellipse2d"}, {"name": "other", "type": "wpimath.geometry._geometry.Transform2d"}], "tooltip": "Transforms the center of the ellipse and returns the new ellipse.\n\n:param other: The transform to transform by.\n\n:returns: The transformed ellipse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "transformBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipse2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Ellipse2d", "args": [{"name": "center", "type": "wpimath.geometry.Pose2d"}, {"name": "xSemiAxis", "type": "wpimath.units.meters"}, {"name": "ySemiAxis", "type": "wpimath.units.meters"}], "tooltip": "Constructs an ellipse around a center point and two semi-axes, a horizontal\nand vertical one.\n\n:param center: The center of the ellipse.\n:param xSemiAxis: The x semi-axis.\n:param ySemiAxis: The y semi-axis.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipse2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Ellipse2d", "args": [{"name": "center", "type": "wpimath.geometry.Translation2d"}, {"name": "radius", "type": "float"}], "tooltip": "Constructs a perfectly circular ellipse with the specified radius.\n\n:param center: The center of the circle.\n:param radius: The radius of the circle.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "ellipse2d", "type": "wpimath.geometry.Ellipse2d"}], "tooltip": "Returns the center of the ellipse.\n\n:returns: The center of the ellipse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "center"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "ellipse2d", "type": "wpimath.geometry.Ellipse2d"}, {"name": "point", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Checks if a point is contained within this ellipse. This is inclusive, if\nthe point lies on the circumference this will return ``true``.\n\n:param point: The point to check.\n\n:returns: True, if the point is within or on the ellipse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "contains"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "ellipse2d", "type": "wpimath.geometry.Ellipse2d"}, {"name": "point", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Returns the distance between the perimeter of the ellipse and the point.\n\n:param point: The point to check.\n\n:returns: The distance (0, if the point is contained by the ellipse)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "distance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d]", "args": [{"name": "ellipse2d", "type": "wpimath.geometry.Ellipse2d"}], "tooltip": "Returns the focal points of the ellipse. In a perfect circle, this will\nalways return the center.\n\n:returns: The focal points.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "focalPoints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipse2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Ellipse2d", "args": [{"name": "center", "type": "wpimath.geometry.Pose2d"}, {"name": "xSemiAxis", "type": "wpimath.units.feet"}, {"name": "ySemiAxis", "type": "wpimath.units.feet"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "fromFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "ellipse2d", "type": "wpimath.geometry.Ellipse2d"}, {"name": "point", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Checks if a point is intersected by this ellipse's circumference.\n\n:param point: The point to check.\n\n:returns: True, if this ellipse's circumference intersects the point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "intersects"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "ellipse2d", "type": "wpimath.geometry.Ellipse2d"}, {"name": "point", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Returns the nearest point that is contained within the ellipse.\n\n:param point: The point that this will find the nearest point to.\n\n:returns: A new point that is nearest to ``point`` and contained in the\n ellipse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "nearest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipse2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Ellipse2d", "args": [{"name": "ellipse2d", "type": "wpimath.geometry.Ellipse2d"}, {"name": "other", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Rotates the center of the ellipse and returns the new ellipse.\n\n:param other: The rotation to transform by.\n\n:returns: The rotated ellipse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "ellipse2d", "type": "wpimath.geometry.Ellipse2d"}], "tooltip": "Returns the rotational component of the ellipse.\n\n:returns: The rotational component of the ellipse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "rotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipse2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Ellipse2d", "args": [{"name": "ellipse2d", "type": "wpimath.geometry.Ellipse2d"}, {"name": "other", "type": "wpimath.geometry.Transform2d"}], "tooltip": "Transforms the center of the ellipse and returns the new ellipse.\n\n:param other: The transform to transform by.\n\n:returns: The transformed ellipse.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Ellipse2d", "FUNC": "transformBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Pose2d.ts b/src/blocks/generated/class_wpimath.geometry.Pose2d.ts
index 69e43121..c8c6a7ef 100644
--- a/src/blocks/generated/class_wpimath.geometry.Pose2d.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Pose2d.ts
@@ -18,24 +18,24 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Pose2d", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "pose2d", "selfType": "wpimath.geometry.Pose2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "VAR": "y"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Pose2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "pose2d", "selfType": "wpimath.geometry.Pose2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "VAR": "x_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Pose2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "pose2d", "selfType": "wpimath.geometry.Pose2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "VAR": "y_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [], "tooltip": "Constructs a pose at the origin facing toward the positive X axis.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Constructs a pose with the specified translation and rotation.\n\n:param translation: The translational component of the pose.\n:param rotation: The rotational component of the pose.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Constructs a pose with x and y translations instead of a separate\nTranslation2d.\n\n:param x: The x component of the translational component of the pose.\n:param y: The y component of the translational component of the pose.\n:param rotation: The rotational component of the pose.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "angle", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "pose2d", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Returns the X component of the pose's translation.\n\n:returns: The x component of the pose's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "pose2d", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Returns the Y component of the pose's translation.\n\n:returns: The y component of the pose's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "pose2d", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "twist", "type": "wpimath.geometry._geometry.Twist2d"}], "tooltip": "Obtain a new Pose2d from a (constant curvature) velocity.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf section\n10.2 \"Pose exponential\" for a derivation.\n\nThe twist is a change in pose in the robot's coordinate frame since the\nprevious pose update. When the user runs exp() on the previous known\nfield-relative pose with the argument being the twist, the user will\nreceive the new field-relative pose.\n\n\"Exp\" represents the pose exponential, which is solving a differential\nequation moving the pose forward in time.\n\n:param twist: The change in pose in the robot's coordinate frame since the\n previous pose update. For example, if a non-holonomic robot moves forward\n 0.01 meters and changes angle by 0.5 degrees since the previous pose\n update, the twist would be Twist2d{0.01_m, 0_m, 0.5_deg}.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "exp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTwist2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "x", "type": "wpimath.units.feet"}, {"name": "y", "type": "wpimath.units.feet"}, {"name": "r", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "fromFeet"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "x", "type": "wpimath.units.feet"}, {"name": "y", "type": "wpimath.units.feet"}, {"name": "angle", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "fromFeet"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "matrix", "type": "numpy.ndarray[numpy.float64[3, 3]]"}], "tooltip": "Constructs a pose with the specified affine transformation matrix.\n\n:param matrix: The affine transformation matrix.\n @throws std::domain_error if the affine transformation matrix is invalid.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "fromMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "pose2d", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "end", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Returns a Twist2d that maps this pose to the end pose. If c is the output\nof a.Log(b), then a.Exp(c) would yield b.\n\n:param end: The end pose for the transformation.\n\n:returns: The twist that maps this to end.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "log"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "pose2d", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "poses", "type": "List[wpimath.geometry._geometry.Pose2d]"}], "tooltip": "Returns the nearest Pose2d from a collection of poses\n\n:param poses: The collection of poses.\n\n:returns: The nearest Pose2d from the collection.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "nearest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "pose2d", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "other", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Returns the current pose relative to the given pose.\n\nThis function can often be used for trajectory tracking or pose\nstabilization algorithms to get the error between the reference and the\ncurrent pose.\n\n:param other: The pose that is the origin of the new coordinate frame that\n the current pose will be converted into.\n\n:returns: The current pose relative to the new origin pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "relativeTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "pose2d", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "other", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Rotates the pose around the origin and returns the new pose.\n\n:param other: The rotation to transform the pose by.\n\n:returns: The rotated pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "pose2d", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Returns the underlying rotation.\n\n:returns: Reference to the rotational component of the pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "rotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "pose2d", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Returns an affine transformation matrix representation of this pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "toMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "pose2d", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "other", "type": "wpimath.geometry._geometry.Transform2d"}], "tooltip": "Transforms the pose by the given transformation and returns the new pose.\nSee + operator for the matrix multiplication performed.\n\n:param other: The transform to transform the pose by.\n\n:returns: The transformed pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "transformBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "pose2d", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Returns the underlying translation.\n\n:returns: Reference to the translational component of the pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "translation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Pose2d", "args": [], "tooltip": "Constructs a pose at the origin facing toward the positive X axis.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "translation", "type": "wpimath.geometry.Translation2d"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Constructs a pose with the specified translation and rotation.\n\n:param translation: The translational component of the pose.\n:param rotation: The rotational component of the pose.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Constructs a pose with x and y translations instead of a separate\nTranslation2d.\n\n:param x: The x component of the translational component of the pose.\n:param y: The y component of the translational component of the pose.\n:param rotation: The rotational component of the pose.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "angle", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "pose2d", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Returns the X component of the pose's translation.\n\n:returns: The x component of the pose's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "pose2d", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Returns the Y component of the pose's translation.\n\n:returns: The y component of the pose's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "pose2d", "type": "wpimath.geometry.Pose2d"}, {"name": "twist", "type": "wpimath.geometry.Twist2d"}], "tooltip": "Obtain a new Pose2d from a (constant curvature) velocity.\n\nSee https://file.tavsys.net/control/controls-engineering-in-frc.pdf section\n10.2 \"Pose exponential\" for a derivation.\n\nThe twist is a change in pose in the robot's coordinate frame since the\nprevious pose update. When the user runs exp() on the previous known\nfield-relative pose with the argument being the twist, the user will\nreceive the new field-relative pose.\n\n\"Exp\" represents the pose exponential, which is solving a differential\nequation moving the pose forward in time.\n\n:param twist: The change in pose in the robot's coordinate frame since the\n previous pose update. For example, if a non-holonomic robot moves forward\n 0.01 meters and changes angle by 0.5 degrees since the previous pose\n update, the twist would be Twist2d{0.01_m, 0_m, 0.5_deg}.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "exp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTwist2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "x", "type": "wpimath.units.feet"}, {"name": "y", "type": "wpimath.units.feet"}, {"name": "r", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "fromFeet"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "x", "type": "wpimath.units.feet"}, {"name": "y", "type": "wpimath.units.feet"}, {"name": "angle", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "fromFeet"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "matrix", "type": "numpy.ndarray[numpy.float64[3, 3]]"}], "tooltip": "Constructs a pose with the specified affine transformation matrix.\n\n:param matrix: The affine transformation matrix.\n @throws std::domain_error if the affine transformation matrix is invalid.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "fromMatrix"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "pose2d", "type": "wpimath.geometry.Pose2d"}, {"name": "end", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Returns a Twist2d that maps this pose to the end pose. If c is the output\nof a.Log(b), then a.Exp(c) would yield b.\n\n:param end: The end pose for the transformation.\n\n:returns: The twist that maps this to end.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "log"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "pose2d", "type": "wpimath.geometry.Pose2d"}, {"name": "poses", "type": "List[wpimath.geometry._geometry.Pose2d]"}], "tooltip": "Returns the nearest Pose2d from a collection of poses\n\n:param poses: The collection of poses.\n\n:returns: The nearest Pose2d from the collection.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "nearest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "pose2d", "type": "wpimath.geometry.Pose2d"}, {"name": "other", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Returns the current pose relative to the given pose.\n\nThis function can often be used for trajectory tracking or pose\nstabilization algorithms to get the error between the reference and the\ncurrent pose.\n\n:param other: The pose that is the origin of the new coordinate frame that\n the current pose will be converted into.\n\n:returns: The current pose relative to the new origin pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "relativeTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "pose2d", "type": "wpimath.geometry.Pose2d"}, {"name": "other", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Rotates the pose around the origin and returns the new pose.\n\n:param other: The rotation to transform the pose by.\n\n:returns: The rotated pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "pose2d", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Returns the underlying rotation.\n\n:returns: Reference to the rotational component of the pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "rotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "pose2d", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Returns an affine transformation matrix representation of this pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "toMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "pose2d", "type": "wpimath.geometry.Pose2d"}, {"name": "other", "type": "wpimath.geometry.Transform2d"}], "tooltip": "Transforms the pose by the given transformation and returns the new pose.\nSee + operator for the matrix multiplication performed.\n\n:param other: The transform to transform the pose by.\n\n:returns: The transformed pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "transformBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "pose2d", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Returns the underlying translation.\n\n:returns: Reference to the translational component of the pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose2d", "FUNC": "translation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Pose3d.ts b/src/blocks/generated/class_wpimath.geometry.Pose3d.ts
index 247171f7..a99ac13c 100644
--- a/src/blocks/generated/class_wpimath.geometry.Pose3d.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Pose3d.ts
@@ -20,24 +20,24 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Pose3d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "pose3d", "selfType": "wpimath.geometry.Pose3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "VAR": "x_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Pose3d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "pose3d", "selfType": "wpimath.geometry.Pose3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "VAR": "y_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Pose3d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "pose3d", "selfType": "wpimath.geometry.Pose3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "VAR": "z_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [], "tooltip": "Constructs a pose at the origin facing toward the positive X axis.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Constructs a pose with the specified translation and rotation.\n\n:param translation: The translational component of the pose.\n:param rotation: The rotational component of the pose.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "z", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Constructs a pose with x, y, and z translations instead of a separate\nTranslation3d.\n\n:param x: The x component of the translational component of the pose.\n:param y: The y component of the translational component of the pose.\n:param z: The z component of the translational component of the pose.\n:param rotation: The rotational component of the pose.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a 3D pose from a 2D pose in the X-Y plane.\n\n:param pose: The 2D pose.\n @see Rotation3d(Rotation2d)\n @see Translation3d(Translation2d)", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "pose3d", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Returns the X component of the pose's translation.\n\n:returns: The x component of the pose's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "pose3d", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Returns the Y component of the pose's translation.\n\n:returns: The y component of the pose's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "pose3d", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Returns the Z component of the pose's translation.\n\n:returns: The z component of the pose's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "Z"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "pose3d", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "twist", "type": "wpimath.geometry._geometry.Twist3d"}], "tooltip": "Obtain a new Pose3d from a (constant curvature) velocity.\n\nThe twist is a change in pose in the robot's coordinate frame since the\nprevious pose update. When the user runs exp() on the previous known\nfield-relative pose with the argument being the twist, the user will\nreceive the new field-relative pose.\n\n\"Exp\" represents the pose exponential, which is solving a differential\nequation moving the pose forward in time.\n\n:param twist: The change in pose in the robot's coordinate frame since the\n previous pose update. For example, if a non-holonomic robot moves forward\n 0.01 meters and changes angle by 0.5 degrees since the previous pose\n update, the twist would be Twist3d{0.01_m, 0_m, 0_m, Rotation3d{0.0, 0.0,\n 0.5_deg}}.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "exp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTwist3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "x", "type": "wpimath.units.feet"}, {"name": "y", "type": "wpimath.units.feet"}, {"name": "z", "type": "wpimath.units.feet"}, {"name": "r", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "fromFeet"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "matrix", "type": "numpy.ndarray[numpy.float64[4, 4]]"}], "tooltip": "Constructs a pose with the specified affine transformation matrix.\n\n:param matrix: The affine transformation matrix.\n @throws std::domain_error if the affine transformation matrix is invalid.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "fromMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[4, 4]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist3d", "args": [{"name": "pose3d", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "end", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Returns a Twist3d that maps this pose to the end pose. If c is the output\nof a.Log(b), then a.Exp(c) would yield b.\n\n:param end: The end pose for the transformation.\n\n:returns: The twist that maps this to end.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "log"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "pose3d", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "other", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Returns the current pose relative to the given pose.\n\nThis function can often be used for trajectory tracking or pose\nstabilization algorithms to get the error between the reference and the\ncurrent pose.\n\n:param other: The pose that is the origin of the new coordinate frame that\n the current pose will be converted into.\n\n:returns: The current pose relative to the new origin pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "relativeTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "pose3d", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "other", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Rotates the pose around the origin and returns the new pose.\n\n:param other: The rotation to transform the pose by, which is applied\n extrinsically (from the global frame).\n\n:returns: The rotated pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [{"name": "pose3d", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Returns the underlying rotation.\n\n:returns: Reference to the rotational component of the pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "rotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[4, 4]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[4, 4]]", "args": [{"name": "pose3d", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Returns an affine transformation matrix representation of this pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "toMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "pose3d", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Returns a Pose2d representing this Pose3d projected into the X-Y plane.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "toPose2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "pose3d", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "other", "type": "wpimath.geometry._geometry.Transform3d"}], "tooltip": "Transforms the pose by the given transformation and returns the new\ntransformed pose. The transform is applied relative to the pose's frame.\nNote that this differs from Pose3d::RotateBy(const Rotation3d&), which is\napplied relative to the global frame and around the origin.\n\n:param other: The transform to transform the pose by.\n\n:returns: The transformed pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "transformBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation3d", "args": [{"name": "pose3d", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Returns the underlying translation.\n\n:returns: Reference to the translational component of the pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "translation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Pose3d", "args": [], "tooltip": "Constructs a pose at the origin facing toward the positive X axis.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "translation", "type": "wpimath.geometry.Translation3d"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Constructs a pose with the specified translation and rotation.\n\n:param translation: The translational component of the pose.\n:param rotation: The rotational component of the pose.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "z", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Constructs a pose with x, y, and z translations instead of a separate\nTranslation3d.\n\n:param x: The x component of the translational component of the pose.\n:param y: The y component of the translational component of the pose.\n:param z: The z component of the translational component of the pose.\n:param rotation: The rotational component of the pose.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a 3D pose from a 2D pose in the X-Y plane.\n\n:param pose: The 2D pose.\n @see Rotation3d(Rotation2d)\n @see Translation3d(Translation2d)", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "pose3d", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Returns the X component of the pose's translation.\n\n:returns: The x component of the pose's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "pose3d", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Returns the Y component of the pose's translation.\n\n:returns: The y component of the pose's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "pose3d", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Returns the Z component of the pose's translation.\n\n:returns: The z component of the pose's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "Z"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "pose3d", "type": "wpimath.geometry.Pose3d"}, {"name": "twist", "type": "wpimath.geometry.Twist3d"}], "tooltip": "Obtain a new Pose3d from a (constant curvature) velocity.\n\nThe twist is a change in pose in the robot's coordinate frame since the\nprevious pose update. When the user runs exp() on the previous known\nfield-relative pose with the argument being the twist, the user will\nreceive the new field-relative pose.\n\n\"Exp\" represents the pose exponential, which is solving a differential\nequation moving the pose forward in time.\n\n:param twist: The change in pose in the robot's coordinate frame since the\n previous pose update. For example, if a non-holonomic robot moves forward\n 0.01 meters and changes angle by 0.5 degrees since the previous pose\n update, the twist would be Twist3d{0.01_m, 0_m, 0_m, Rotation3d{0.0, 0.0,\n 0.5_deg}}.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "exp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTwist3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "x", "type": "wpimath.units.feet"}, {"name": "y", "type": "wpimath.units.feet"}, {"name": "z", "type": "wpimath.units.feet"}, {"name": "r", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "fromFeet"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "matrix", "type": "numpy.ndarray[numpy.float64[4, 4]]"}], "tooltip": "Constructs a pose with the specified affine transformation matrix.\n\n:param matrix: The affine transformation matrix.\n @throws std::domain_error if the affine transformation matrix is invalid.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "fromMatrix"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist3d", "args": [{"name": "pose3d", "type": "wpimath.geometry.Pose3d"}, {"name": "end", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Returns a Twist3d that maps this pose to the end pose. If c is the output\nof a.Log(b), then a.Exp(c) would yield b.\n\n:param end: The end pose for the transformation.\n\n:returns: The twist that maps this to end.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "log"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "pose3d", "type": "wpimath.geometry.Pose3d"}, {"name": "other", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Returns the current pose relative to the given pose.\n\nThis function can often be used for trajectory tracking or pose\nstabilization algorithms to get the error between the reference and the\ncurrent pose.\n\n:param other: The pose that is the origin of the new coordinate frame that\n the current pose will be converted into.\n\n:returns: The current pose relative to the new origin pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "relativeTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "pose3d", "type": "wpimath.geometry.Pose3d"}, {"name": "other", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Rotates the pose around the origin and returns the new pose.\n\n:param other: The rotation to transform the pose by, which is applied\n extrinsically (from the global frame).\n\n:returns: The rotated pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation3d", "args": [{"name": "pose3d", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Returns the underlying rotation.\n\n:returns: Reference to the rotational component of the pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "rotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[4, 4]]", "args": [{"name": "pose3d", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Returns an affine transformation matrix representation of this pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "toMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "pose3d", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Returns a Pose2d representing this Pose3d projected into the X-Y plane.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "toPose2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "pose3d", "type": "wpimath.geometry.Pose3d"}, {"name": "other", "type": "wpimath.geometry.Transform3d"}], "tooltip": "Transforms the pose by the given transformation and returns the new\ntransformed pose. The transform is applied relative to the pose's frame.\nNote that this differs from Pose3d::RotateBy(const Rotation3d&), which is\napplied relative to the global frame and around the origin.\n\n:param other: The transform to transform the pose by.\n\n:returns: The transformed pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "transformBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation3d", "args": [{"name": "pose3d", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Returns the underlying translation.\n\n:returns: Reference to the translational component of the pose.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Pose3d", "FUNC": "translation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Quaternion.ts b/src/blocks/generated/class_wpimath.geometry.Quaternion.ts
index de29b93b..081d1b3f 100644
--- a/src/blocks/generated/class_wpimath.geometry.Quaternion.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Quaternion.ts
@@ -11,24 +11,24 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 18 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Quaternion", "args": [], "tooltip": "Constructs a quaternion with a default angle of 0 degrees.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Quaternion", "args": [{"name": "w", "type": "float"}, {"name": "x", "type": "float"}, {"name": "y", "type": "float"}, {"name": "z", "type": "float"}], "tooltip": "Constructs a quaternion with the given components.\n\n:param w: W component of the quaternion.\n:param x: X component of the quaternion.\n:param y: Y component of the quaternion.\n:param z: Z component of the quaternion.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Returns W component of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "W"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Returns X component of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Returns Y component of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Returns Z component of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "Z"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Returns the conjugate of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "conjugate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}, {"name": "other", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Returns the elementwise product of two quaternions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "dot"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}, {"name": "other", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Matrix exponential of a quaternion.\n\n:param other: the \"Twist\" that will be applied to this quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "exp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Matrix exponential of a quaternion.\n\nsource: wpimath/algorithms.md\n\nIf this quaternion is in \ud835\udd98\ud835\udd94(3) and you are looking for an element of\nSO(3), use FromRotationVector", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "exp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Quaternion", "args": [{"name": "rvec", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Returns the quaternion representation of this rotation vector.\n\nThis is also the exp operator of \ud835\udd98\ud835\udd94(3).\n\nsource: wpimath/algorithms.md", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "fromRotationVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Returns the inverse of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "inverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}, {"name": "other", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Log operator of a quaternion.\n\n:param other: The quaternion to map this quaternion onto", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "log"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Log operator of a quaternion.\n\nsource: wpimath/algorithms.md\n\nIf this quaternion is in SO(3) and you are looking for an element of \ud835\udd98\ud835\udd94(3),\nuse ToRotationVector", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "log"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Calculates the L2 norm of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "norm"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Normalizes the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "normalize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}, {"name": "t", "type": "float"}], "tooltip": "Calculates this quaternion raised to a power.\n\n:param t: the power to raise this quaternion to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "pow"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "quaternion", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Returns the rotation vector representation of this quaternion.\n\nThis is also the log operator of SO(3).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "toRotationVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Quaternion", "args": [], "tooltip": "Constructs a quaternion with a default angle of 0 degrees.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Quaternion", "args": [{"name": "w", "type": "float"}, {"name": "x", "type": "float"}, {"name": "y", "type": "float"}, {"name": "z", "type": "float"}], "tooltip": "Constructs a quaternion with the given components.\n\n:param w: W component of the quaternion.\n:param x: X component of the quaternion.\n:param y: Y component of the quaternion.\n:param z: Z component of the quaternion.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Returns W component of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "W"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Returns X component of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Returns Y component of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Returns Z component of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "Z"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Returns the conjugate of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "conjugate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}, {"name": "other", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Returns the elementwise product of two quaternions.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "dot"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}, {"name": "other", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Matrix exponential of a quaternion.\n\n:param other: the \"Twist\" that will be applied to this quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "exp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Matrix exponential of a quaternion.\n\nsource: wpimath/algorithms.md\n\nIf this quaternion is in \ud835\udd98\ud835\udd94(3) and you are looking for an element of\nSO(3), use FromRotationVector", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "exp"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Quaternion", "args": [{"name": "rvec", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Returns the quaternion representation of this rotation vector.\n\nThis is also the exp operator of \ud835\udd98\ud835\udd94(3).\n\nsource: wpimath/algorithms.md", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "fromRotationVector"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Returns the inverse of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "inverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}, {"name": "other", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Log operator of a quaternion.\n\n:param other: The quaternion to map this quaternion onto", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "log"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Log operator of a quaternion.\n\nsource: wpimath/algorithms.md\n\nIf this quaternion is in SO(3) and you are looking for an element of \ud835\udd98\ud835\udd94(3),\nuse ToRotationVector", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "log"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Calculates the L2 norm of the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "norm"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Normalizes the quaternion.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "normalize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Quaternion", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}, {"name": "t", "type": "float"}], "tooltip": "Calculates this quaternion raised to a power.\n\n:param t: the power to raise this quaternion to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "pow"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "quaternion", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Returns the rotation vector representation of this quaternion.\n\nThis is also the log operator of SO(3).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Quaternion", "FUNC": "toRotationVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Rectangle2d.ts b/src/blocks/generated/class_wpimath.geometry.Rectangle2d.ts
index f34a83c4..fa2c82f5 100644
--- a/src/blocks/generated/class_wpimath.geometry.Rectangle2d.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Rectangle2d.ts
@@ -18,17 +18,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Rectangle2d", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "rectangle2d", "selfType": "wpimath.geometry.Rectangle2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "VAR": "ywidth"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Rectangle2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "rectangle2d", "selfType": "wpimath.geometry.Rectangle2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "VAR": "xwidth_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Rectangle2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "rectangle2d", "selfType": "wpimath.geometry.Rectangle2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "VAR": "ywidth_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangle2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rectangle2d", "args": [{"name": "center", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "xWidth", "type": "wpimath.units.meters"}, {"name": "yWidth", "type": "wpimath.units.meters"}], "tooltip": "Constructs a rectangle at the specified position with the specified width\nand height.\n\n:param center: The position (translation and rotation) of the rectangle.\n:param xWidth: The x size component of the rectangle, in unrotated\n coordinate frame.\n:param yWidth: The y size component of the rectangle, in unrotated\n coordinate frame.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangle2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rectangle2d", "args": [{"name": "cornerA", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "cornerB", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Creates an unrotated rectangle from the given corners. The corners should\nbe diagonally opposite of each other.\n\n:param cornerA: The first corner of the rectangle.\n:param cornerB: The second corner of the rectangle.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "rectangle2d", "type": "wpimath.geometry._geometry.Rectangle2d"}], "tooltip": "Returns the center of the rectangle.\n\n:returns: The center of the rectangle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "center"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "rectangle2d", "type": "wpimath.geometry._geometry.Rectangle2d"}, {"name": "point", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Checks if a point is contained within the rectangle. This is inclusive, if\nthe point lies on the perimeter it will return true.\n\n:param point: The point to check.\n\n:returns: True, if the rectangle contains the point or the perimeter\n intersects the point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "contains"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "rectangle2d", "type": "wpimath.geometry._geometry.Rectangle2d"}, {"name": "point", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Returns the distance between the perimeter of the rectangle and the point.\n\n:param point: The point to check.\n\n:returns: The distance (0, if the point is contained by the rectangle)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "distance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangle2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Rectangle2d", "args": [{"name": "center", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "xWidth", "type": "wpimath.units.feet"}, {"name": "yWidth", "type": "wpimath.units.feet"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "fromFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "rectangle2d", "type": "wpimath.geometry._geometry.Rectangle2d"}, {"name": "point", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Checks if a point is intersected by the rectangle's perimeter.\n\n:param point: The point to check.\n\n:returns: True, if the rectangle's perimeter intersects the point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "intersects"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "rectangle2d", "type": "wpimath.geometry._geometry.Rectangle2d"}, {"name": "point", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Returns the nearest point that is contained within the rectangle.\n\n:param point: The point that this will find the nearest point to.\n\n:returns: A new point that is nearest to ``point`` and contained in the\n rectangle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "nearest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangle2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rectangle2d", "args": [{"name": "rectangle2d", "type": "wpimath.geometry._geometry.Rectangle2d"}, {"name": "other", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Rotates the center of the rectangle and returns the new rectangle.\n\n:param other: The rotation to transform by.\n\n:returns: The rotated rectangle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "rectangle2d", "type": "wpimath.geometry._geometry.Rectangle2d"}], "tooltip": "Returns the rotational component of the rectangle.\n\n:returns: The rotational component of the rectangle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "rotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangle2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rectangle2d", "args": [{"name": "rectangle2d", "type": "wpimath.geometry._geometry.Rectangle2d"}, {"name": "other", "type": "wpimath.geometry._geometry.Transform2d"}], "tooltip": "Transforms the center of the rectangle and returns the new rectangle.\n\n:param other: The transform to transform by.\n\n:returns: The transformed rectangle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "transformBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangle2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rectangle2d", "args": [{"name": "center", "type": "wpimath.geometry.Pose2d"}, {"name": "xWidth", "type": "wpimath.units.meters"}, {"name": "yWidth", "type": "wpimath.units.meters"}], "tooltip": "Constructs a rectangle at the specified position with the specified width\nand height.\n\n:param center: The position (translation and rotation) of the rectangle.\n:param xWidth: The x size component of the rectangle, in unrotated\n coordinate frame.\n:param yWidth: The y size component of the rectangle, in unrotated\n coordinate frame.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangle2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rectangle2d", "args": [{"name": "cornerA", "type": "wpimath.geometry.Translation2d"}, {"name": "cornerB", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Creates an unrotated rectangle from the given corners. The corners should\nbe diagonally opposite of each other.\n\n:param cornerA: The first corner of the rectangle.\n:param cornerB: The second corner of the rectangle.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "rectangle2d", "type": "wpimath.geometry.Rectangle2d"}], "tooltip": "Returns the center of the rectangle.\n\n:returns: The center of the rectangle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "center"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "rectangle2d", "type": "wpimath.geometry.Rectangle2d"}, {"name": "point", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Checks if a point is contained within the rectangle. This is inclusive, if\nthe point lies on the perimeter it will return true.\n\n:param point: The point to check.\n\n:returns: True, if the rectangle contains the point or the perimeter\n intersects the point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "contains"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "rectangle2d", "type": "wpimath.geometry.Rectangle2d"}, {"name": "point", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Returns the distance between the perimeter of the rectangle and the point.\n\n:param point: The point to check.\n\n:returns: The distance (0, if the point is contained by the rectangle)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "distance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangle2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Rectangle2d", "args": [{"name": "center", "type": "wpimath.geometry.Pose2d"}, {"name": "xWidth", "type": "wpimath.units.feet"}, {"name": "yWidth", "type": "wpimath.units.feet"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "fromFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "rectangle2d", "type": "wpimath.geometry.Rectangle2d"}, {"name": "point", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Checks if a point is intersected by the rectangle's perimeter.\n\n:param point: The point to check.\n\n:returns: True, if the rectangle's perimeter intersects the point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "intersects"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "rectangle2d", "type": "wpimath.geometry.Rectangle2d"}, {"name": "point", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Returns the nearest point that is contained within the rectangle.\n\n:param point: The point that this will find the nearest point to.\n\n:returns: A new point that is nearest to ``point`` and contained in the\n rectangle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "nearest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangle2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rectangle2d", "args": [{"name": "rectangle2d", "type": "wpimath.geometry.Rectangle2d"}, {"name": "other", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Rotates the center of the rectangle and returns the new rectangle.\n\n:param other: The rotation to transform by.\n\n:returns: The rotated rectangle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "rectangle2d", "type": "wpimath.geometry.Rectangle2d"}], "tooltip": "Returns the rotational component of the rectangle.\n\n:returns: The rotational component of the rectangle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "rotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangle2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rectangle2d", "args": [{"name": "rectangle2d", "type": "wpimath.geometry.Rectangle2d"}, {"name": "other", "type": "wpimath.geometry.Transform2d"}], "tooltip": "Transforms the center of the rectangle and returns the new rectangle.\n\n:param other: The transform to transform by.\n\n:returns: The transformed rectangle", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rectangle2d", "FUNC": "transformBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Rotation2d.ts b/src/blocks/generated/class_wpimath.geometry.Rotation2d.ts
index e495f547..f93fbdb7 100644
--- a/src/blocks/generated/class_wpimath.geometry.Rotation2d.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Rotation2d.ts
@@ -11,19 +11,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 13 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [], "tooltip": "Constructs a Rotation2d with a default angle of 0 degrees.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "value", "type": "wpimath.units.radians"}], "tooltip": "Constructs a Rotation2d with the given radian value.\n:param value: The value of the angle in radians.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "x", "type": "float"}, {"name": "y", "type": "float"}], "tooltip": "Constructs a Rotation2d with the given x and y (cosine and sine)\ncomponents. The x and y don't have to be normalized.\n\n:param x: The x component or cosine of the rotation.\n:param y: The y component or sine of the rotation.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "rotation2d", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Returns the cosine of the rotation.\n\n:returns: The cosine of the rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "cos"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "rotation2d", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Returns the degree value of the rotation.\n\n:returns: The degree value of the rotation.\n @see InputModulus to constrain the angle within (-180, 180]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "degrees"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "value", "type": "wpimath.units.degrees"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "fromDegrees"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "rotationMatrix", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Constructs a Rotation2d from a rotation matrix.\n\n:param rotationMatrix: The rotation matrix.\n @throws std::domain_error if the rotation matrix isn't special orthogonal.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "fromMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "arg0", "type": "wpimath.units.turns"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "fromRotations"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "rotation2d", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Returns the radian value of the rotation.\n\n:returns: The radian value of the rotation.\n @see AngleModulus to constrain the angle within (-\u03c0, \u03c0]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "radians"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "rotation2d", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "other", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Adds the new rotation to the current rotation using a rotation matrix.\n\n::\n\n [cos_new] [other.cos, -other.sin][cos]\n [sin_new] = [other.sin, other.cos][sin]\n value_new = std::atan2(sin_new, cos_new)\n\n:param other: The rotation to rotate by.\n\n:returns: The new rotated Rotation2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "rotation2d", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Returns the sine of the rotation.\n\n:returns: The sine of the rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "sin"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "rotation2d", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Returns the tangent of the rotation.\n\n:returns: The tangent of the rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "tan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "rotation2d", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Returns matrix representation of this rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "toMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rotation2d", "args": [], "tooltip": "Constructs a Rotation2d with a default angle of 0 degrees.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "value", "type": "wpimath.units.radians"}], "tooltip": "Constructs a Rotation2d with the given radian value.\n:param value: The value of the angle in radians.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "x", "type": "float"}, {"name": "y", "type": "float"}], "tooltip": "Constructs a Rotation2d with the given x and y (cosine and sine)\ncomponents. The x and y don't have to be normalized.\n\n:param x: The x component or cosine of the rotation.\n:param y: The y component or sine of the rotation.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "rotation2d", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Returns the cosine of the rotation.\n\n:returns: The cosine of the rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "cos"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.degrees", "args": [{"name": "rotation2d", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Returns the degree value of the rotation.\n\n:returns: The degree value of the rotation.\n @see InputModulus to constrain the angle within (-180, 180]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "degrees"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "value", "type": "wpimath.units.degrees"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "fromDegrees"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "rotationMatrix", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Constructs a Rotation2d from a rotation matrix.\n\n:param rotationMatrix: The rotation matrix.\n @throws std::domain_error if the rotation matrix isn't special orthogonal.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "fromMatrix"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "arg0", "type": "wpimath.units.turns"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "fromRotations"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "rotation2d", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Returns the radian value of the rotation.\n\n:returns: The radian value of the rotation.\n @see AngleModulus to constrain the angle within (-\u03c0, \u03c0]", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "radians"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "rotation2d", "type": "wpimath.geometry.Rotation2d"}, {"name": "other", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Adds the new rotation to the current rotation using a rotation matrix.\n\n::\n\n [cos_new] [other.cos, -other.sin][cos]\n [sin_new] = [other.sin, other.cos][sin]\n value_new = std::atan2(sin_new, cos_new)\n\n:param other: The rotation to rotate by.\n\n:returns: The new rotated Rotation2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "rotation2d", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Returns the sine of the rotation.\n\n:returns: The sine of the rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "sin"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "rotation2d", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Returns the tangent of the rotation.\n\n:returns: The tangent of the rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "tan"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "rotation2d", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Returns matrix representation of this rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation2d", "FUNC": "toMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Rotation3d.ts b/src/blocks/generated/class_wpimath.geometry.Rotation3d.ts
index 720be324..1949ac36 100644
--- a/src/blocks/generated/class_wpimath.geometry.Rotation3d.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Rotation3d.ts
@@ -22,24 +22,24 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Rotation3d", "varType": "wpimath.units.degrees", "importModule": "", "selfLabel": "rotation3d", "selfType": "wpimath.geometry.Rotation3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "VAR": "x_degrees"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Rotation3d", "varType": "wpimath.units.degrees", "importModule": "", "selfLabel": "rotation3d", "selfType": "wpimath.geometry.Rotation3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "VAR": "y_degrees"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Rotation3d", "varType": "wpimath.units.degrees", "importModule": "", "selfLabel": "rotation3d", "selfType": "wpimath.geometry.Rotation3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "VAR": "z_degrees"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [], "tooltip": "Constructs a Rotation3d representing no rotation.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [{"name": "q", "type": "wpimath.geometry._geometry.Quaternion"}], "tooltip": "Constructs a Rotation3d from a quaternion.\n\n:param q: The quaternion.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [{"name": "roll", "type": "wpimath.units.radians"}, {"name": "pitch", "type": "wpimath.units.radians"}, {"name": "yaw", "type": "wpimath.units.radians"}], "tooltip": "Constructs a Rotation3d from extrinsic roll, pitch, and yaw.\n\nExtrinsic rotations occur in that order around the axes in the fixed global\nframe rather than the body frame.\n\nAngles are measured counterclockwise with the rotation axis pointing \"out\nof the page\". If you point your right thumb along the positive axis\ndirection, your fingers curl in the direction of positive rotation.\n\n:param roll: The counterclockwise rotation angle around the X axis (roll).\n:param pitch: The counterclockwise rotation angle around the Y axis (pitch).\n:param yaw: The counterclockwise rotation angle around the Z axis (yaw).", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [{"name": "axis", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "angle", "type": "wpimath.units.radians"}], "tooltip": "Constructs a Rotation3d with the given axis-angle representation. The axis\ndoesn't have to be normalized.\n\n:param axis: The rotation axis.\n:param angle: The rotation around the axis.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [{"name": "rvec", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Constructs a Rotation3d with the given rotation vector representation. This\nrepresentation is equivalent to axis-angle, where the normalized axis is\nmultiplied by the rotation around the axis in radians.\n\n:param rvec: The rotation vector.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [{"name": "rotationMatrix", "type": "numpy.ndarray[numpy.float64[3, 3]]"}], "tooltip": "Constructs a Rotation3d from a rotation matrix.\n\n:param rotationMatrix: The rotation matrix.\n @throws std::domain_error if the rotation matrix isn't special orthogonal.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [{"name": "initial", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "final", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Constructs a Rotation3d that rotates the initial vector onto the final\nvector.\n\nThis is useful for turning a 3D vector (final) into an orientation relative\nto a coordinate system vector (initial).\n\n:param initial: The initial vector.\n:param final: The final vector.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [{"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Constructs a 3D rotation from a 2D rotation in the X-Y plane.\n\n:param rotation: The 2D rotation.\n @see Pose3d(Pose2d)\n @see Transform3d(Transform2d)", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "rotation3d", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Returns the counterclockwise rotation angle around the X axis (roll).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "rotation3d", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Returns the counterclockwise rotation angle around the Y axis (pitch).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "rotation3d", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Returns the counterclockwise rotation angle around the Z axis (yaw).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "Z"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "rotation3d", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Returns the axis in the axis-angle representation of this rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [{"name": "roll", "type": "wpimath.units.degrees"}, {"name": "pitch", "type": "wpimath.units.degrees"}, {"name": "yaw", "type": "wpimath.units.degrees"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "fromDegrees"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Quaternion", "args": [{"name": "rotation3d", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Returns the quaternion representation of the Rotation3d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "getQuaternion"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [{"name": "rotation3d", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "other", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Adds the new rotation to the current rotation. The other rotation is\napplied extrinsically, which means that it rotates around the global axes.\nFor example, Rotation3d{90_deg, 0, 0}.RotateBy(Rotation3d{0, 45_deg, 0})\nrotates by 90 degrees around the +X axis and then by 45 degrees around the\nglobal +Y axis. (This is equivalent to Rotation3d{90_deg, 45_deg, 0})\n\n:param other: The extrinsic rotation to rotate by.\n\n:returns: The new rotated Rotation3d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "rotation3d", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Returns rotation matrix representation of this rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "toMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "rotation3d", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Returns a Rotation2d representing this Rotation3d projected into the X-Y\nplane.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "toRotation2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "rotation3d", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Returns rotation vector representation of this rotation.\n\n:returns: Rotation vector representation of this rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "toVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rotation3d", "args": [], "tooltip": "Constructs a Rotation3d representing no rotation.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rotation3d", "args": [{"name": "q", "type": "wpimath.geometry.Quaternion"}], "tooltip": "Constructs a Rotation3d from a quaternion.\n\n:param q: The quaternion.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuaternion"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rotation3d", "args": [{"name": "roll", "type": "wpimath.units.radians"}, {"name": "pitch", "type": "wpimath.units.radians"}, {"name": "yaw", "type": "wpimath.units.radians"}], "tooltip": "Constructs a Rotation3d from extrinsic roll, pitch, and yaw.\n\nExtrinsic rotations occur in that order around the axes in the fixed global\nframe rather than the body frame.\n\nAngles are measured counterclockwise with the rotation axis pointing \"out\nof the page\". If you point your right thumb along the positive axis\ndirection, your fingers curl in the direction of positive rotation.\n\n:param roll: The counterclockwise rotation angle around the X axis (roll).\n:param pitch: The counterclockwise rotation angle around the Y axis (pitch).\n:param yaw: The counterclockwise rotation angle around the Z axis (yaw).", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rotation3d", "args": [{"name": "axis", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "angle", "type": "wpimath.units.radians"}], "tooltip": "Constructs a Rotation3d with the given axis-angle representation. The axis\ndoesn't have to be normalized.\n\n:param axis: The rotation axis.\n:param angle: The rotation around the axis.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rotation3d", "args": [{"name": "rvec", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Constructs a Rotation3d with the given rotation vector representation. This\nrepresentation is equivalent to axis-angle, where the normalized axis is\nmultiplied by the rotation around the axis in radians.\n\n:param rvec: The rotation vector.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rotation3d", "args": [{"name": "rotationMatrix", "type": "numpy.ndarray[numpy.float64[3, 3]]"}], "tooltip": "Constructs a Rotation3d from a rotation matrix.\n\n:param rotationMatrix: The rotation matrix.\n @throws std::domain_error if the rotation matrix isn't special orthogonal.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rotation3d", "args": [{"name": "initial", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "final", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Constructs a Rotation3d that rotates the initial vector onto the final\nvector.\n\nThis is useful for turning a 3D vector (final) into an orientation relative\nto a coordinate system vector (initial).\n\n:param initial: The initial vector.\n:param final: The final vector.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Rotation3d", "args": [{"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Constructs a 3D rotation from a 2D rotation in the X-Y plane.\n\n:param rotation: The 2D rotation.\n @see Pose3d(Pose2d)\n @see Transform3d(Transform2d)", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "rotation3d", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Returns the counterclockwise rotation angle around the X axis (roll).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "rotation3d", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Returns the counterclockwise rotation angle around the Y axis (pitch).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians", "args": [{"name": "rotation3d", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Returns the counterclockwise rotation angle around the Z axis (yaw).", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "Z"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "rotation3d", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Returns the axis in the axis-angle representation of this rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "axis"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Rotation3d", "args": [{"name": "roll", "type": "wpimath.units.degrees"}, {"name": "pitch", "type": "wpimath.units.degrees"}, {"name": "yaw", "type": "wpimath.units.degrees"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "fromDegrees"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuaternion"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Quaternion", "args": [{"name": "rotation3d", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Returns the quaternion representation of the Rotation3d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "getQuaternion"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation3d", "args": [{"name": "rotation3d", "type": "wpimath.geometry.Rotation3d"}, {"name": "other", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Adds the new rotation to the current rotation. The other rotation is\napplied extrinsically, which means that it rotates around the global axes.\nFor example, Rotation3d{90_deg, 0, 0}.RotateBy(Rotation3d{0, 45_deg, 0})\nrotates by 90 degrees around the +X axis and then by 45 degrees around the\nglobal +Y axis. (This is equivalent to Rotation3d{90_deg, 45_deg, 0})\n\n:param other: The extrinsic rotation to rotate by.\n\n:returns: The new rotated Rotation3d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "rotation3d", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Returns rotation matrix representation of this rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "toMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "rotation3d", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Returns a Rotation2d representing this Rotation3d projected into the X-Y\nplane.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "toRotation2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "rotation3d", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Returns rotation vector representation of this rotation.\n\n:returns: Rotation vector representation of this rotation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Rotation3d", "FUNC": "toVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Transform2d.ts b/src/blocks/generated/class_wpimath.geometry.Transform2d.ts
index d5653a3d..b9f30ad8 100644
--- a/src/blocks/generated/class_wpimath.geometry.Transform2d.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Transform2d.ts
@@ -18,19 +18,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Transform2d", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "transform2d", "selfType": "wpimath.geometry.Transform2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "VAR": "y"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Transform2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "transform2d", "selfType": "wpimath.geometry.Transform2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "VAR": "x_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Transform2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "transform2d", "selfType": "wpimath.geometry.Transform2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "VAR": "y_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Transform2d", "args": [{"name": "initial", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "final", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs the transform that maps the initial pose to the final pose.\n\n:param initial: The initial pose for the transformation.\n:param final: The final pose for the transformation.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Transform2d", "args": [{"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Constructs a transform with the given translation and rotation components.\n\n:param translation: Translational component of the transform.\n:param rotation: Rotational component of the transform.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Transform2d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Constructs a transform with x and y translations instead of a separate\nTranslation2d.\n\n:param x: The x component of the translational component of the transform.\n:param y: The y component of the translational component of the transform.\n:param rotation: The rotational component of the transform.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Transform2d", "args": [], "tooltip": "Constructs the identity transform -- maps an initial pose to itself.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Transform2d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "angle", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "transform2d", "type": "wpimath.geometry._geometry.Transform2d"}], "tooltip": "Returns the X component of the transformation's translation.\n\n:returns: The x component of the transformation's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "transform2d", "type": "wpimath.geometry._geometry.Transform2d"}], "tooltip": "Returns the Y component of the transformation's translation.\n\n:returns: The y component of the transformation's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Transform2d", "args": [{"name": "x", "type": "wpimath.units.feet"}, {"name": "y", "type": "wpimath.units.feet"}, {"name": "angle", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "fromFeet"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Transform2d", "args": [{"name": "matrix", "type": "numpy.ndarray[numpy.float64[3, 3]]"}], "tooltip": "Constructs a pose with the specified affine transformation matrix.\n\n:param matrix: The affine transformation matrix.\n @throws std::domain_error if the affine transformation matrix is invalid.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "fromMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Transform2d", "args": [{"name": "transform2d", "type": "wpimath.geometry._geometry.Transform2d"}], "tooltip": "Invert the transformation. This is useful for undoing a transformation.\n\n:returns: The inverted transformation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "inverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "transform2d", "type": "wpimath.geometry._geometry.Transform2d"}], "tooltip": "Returns the rotational component of the transformation.\n\n:returns: Reference to the rotational component of the transform.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "rotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "transform2d", "type": "wpimath.geometry._geometry.Transform2d"}], "tooltip": "Returns an affine transformation matrix representation of this\ntransformation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "toMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "transform2d", "type": "wpimath.geometry._geometry.Transform2d"}], "tooltip": "Returns the translation component of the transformation.\n\n:returns: Reference to the translational component of the transform.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "translation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Transform2d", "args": [{"name": "initial", "type": "wpimath.geometry.Pose2d"}, {"name": "final", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs the transform that maps the initial pose to the final pose.\n\n:param initial: The initial pose for the transformation.\n:param final: The final pose for the transformation.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Transform2d", "args": [{"name": "translation", "type": "wpimath.geometry.Translation2d"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Constructs a transform with the given translation and rotation components.\n\n:param translation: Translational component of the transform.\n:param rotation: Rotational component of the transform.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Transform2d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Constructs a transform with x and y translations instead of a separate\nTranslation2d.\n\n:param x: The x component of the translational component of the transform.\n:param y: The y component of the translational component of the transform.\n:param rotation: The rotational component of the transform.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Transform2d", "args": [], "tooltip": "Constructs the identity transform -- maps an initial pose to itself.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Transform2d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "angle", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "transform2d", "type": "wpimath.geometry.Transform2d"}], "tooltip": "Returns the X component of the transformation's translation.\n\n:returns: The x component of the transformation's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "transform2d", "type": "wpimath.geometry.Transform2d"}], "tooltip": "Returns the Y component of the transformation's translation.\n\n:returns: The y component of the transformation's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Transform2d", "args": [{"name": "x", "type": "wpimath.units.feet"}, {"name": "y", "type": "wpimath.units.feet"}, {"name": "angle", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "fromFeet"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Transform2d", "args": [{"name": "matrix", "type": "numpy.ndarray[numpy.float64[3, 3]]"}], "tooltip": "Constructs a pose with the specified affine transformation matrix.\n\n:param matrix: The affine transformation matrix.\n @throws std::domain_error if the affine transformation matrix is invalid.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "fromMatrix"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Transform2d", "args": [{"name": "transform2d", "type": "wpimath.geometry.Transform2d"}], "tooltip": "Invert the transformation. This is useful for undoing a transformation.\n\n:returns: The inverted transformation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "inverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "transform2d", "type": "wpimath.geometry.Transform2d"}], "tooltip": "Returns the rotational component of the transformation.\n\n:returns: Reference to the rotational component of the transform.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "rotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "transform2d", "type": "wpimath.geometry.Transform2d"}], "tooltip": "Returns an affine transformation matrix representation of this\ntransformation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "toMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "transform2d", "type": "wpimath.geometry.Transform2d"}], "tooltip": "Returns the translation component of the transformation.\n\n:returns: Reference to the translational component of the transform.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform2d", "FUNC": "translation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Transform3d.ts b/src/blocks/generated/class_wpimath.geometry.Transform3d.ts
index a7cd64bc..9acde8f7 100644
--- a/src/blocks/generated/class_wpimath.geometry.Transform3d.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Transform3d.ts
@@ -20,19 +20,19 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Transform3d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "transform3d", "selfType": "wpimath.geometry.Transform3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "VAR": "x_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Transform3d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "transform3d", "selfType": "wpimath.geometry.Transform3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "VAR": "y_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Transform3d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "transform3d", "selfType": "wpimath.geometry.Transform3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "VAR": "z_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Transform3d", "args": [{"name": "initial", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "final", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs the transform that maps the initial pose to the final pose.\n\n:param initial: The initial pose for the transformation.\n:param final: The final pose for the transformation.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Transform3d", "args": [{"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Constructs a transform with the given translation and rotation components.\n\n:param translation: Translational component of the transform.\n:param rotation: Rotational component of the transform.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Transform3d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "z", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Constructs a transform with x, y, and z translations instead of a separate\nTranslation3d.\n\n:param x: The x component of the translational component of the transform.\n:param y: The y component of the translational component of the transform.\n:param z: The z component of the translational component of the transform.\n:param rotation: The rotational component of the transform.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Transform3d", "args": [], "tooltip": "Constructs the identity transform -- maps an initial pose to itself.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Transform3d", "args": [{"name": "transform", "type": "wpimath.geometry._geometry.Transform2d"}], "tooltip": "Constructs a 3D transform from a 2D transform in the X-Y plane.\n**\n\n:param transform: The 2D transform.\n @see Rotation3d(Rotation2d)\n @see Translation3d(Translation2d)", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "transform3d", "type": "wpimath.geometry._geometry.Transform3d"}], "tooltip": "Returns the X component of the transformation's translation.\n\n:returns: The x component of the transformation's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "transform3d", "type": "wpimath.geometry._geometry.Transform3d"}], "tooltip": "Returns the Y component of the transformation's translation.\n\n:returns: The y component of the transformation's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "transform3d", "type": "wpimath.geometry._geometry.Transform3d"}], "tooltip": "Returns the Z component of the transformation's translation.\n\n:returns: The z component of the transformation's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "Z"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Transform3d", "args": [{"name": "matrix", "type": "numpy.ndarray[numpy.float64[4, 4]]"}], "tooltip": "Constructs a transform with the specified affine transformation matrix.\n\n:param matrix: The affine transformation matrix.\n @throws std::domain_error if the affine transformation matrix is invalid.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "fromMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[4, 4]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Transform3d", "args": [{"name": "transform3d", "type": "wpimath.geometry._geometry.Transform3d"}], "tooltip": "Invert the transformation. This is useful for undoing a transformation.\n\n:returns: The inverted transformation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "inverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation3d", "args": [{"name": "transform3d", "type": "wpimath.geometry._geometry.Transform3d"}], "tooltip": "Returns the rotational component of the transformation.\n\n:returns: Reference to the rotational component of the transform.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "rotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[4, 4]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[4, 4]]", "args": [{"name": "transform3d", "type": "wpimath.geometry._geometry.Transform3d"}], "tooltip": "Returns an affine transformation matrix representation of this\ntransformation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "toMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation3d", "args": [{"name": "transform3d", "type": "wpimath.geometry._geometry.Transform3d"}], "tooltip": "Returns the translation component of the transformation.\n\n:returns: Reference to the translational component of the transform.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "translation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Transform3d", "args": [{"name": "initial", "type": "wpimath.geometry.Pose3d"}, {"name": "final", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs the transform that maps the initial pose to the final pose.\n\n:param initial: The initial pose for the transformation.\n:param final: The final pose for the transformation.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Transform3d", "args": [{"name": "translation", "type": "wpimath.geometry.Translation3d"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Constructs a transform with the given translation and rotation components.\n\n:param translation: Translational component of the transform.\n:param rotation: Rotational component of the transform.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Transform3d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "z", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Constructs a transform with x, y, and z translations instead of a separate\nTranslation3d.\n\n:param x: The x component of the translational component of the transform.\n:param y: The y component of the translational component of the transform.\n:param z: The z component of the translational component of the transform.\n:param rotation: The rotational component of the transform.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Transform3d", "args": [], "tooltip": "Constructs the identity transform -- maps an initial pose to itself.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Transform3d", "args": [{"name": "transform", "type": "wpimath.geometry.Transform2d"}], "tooltip": "Constructs a 3D transform from a 2D transform in the X-Y plane.\n**\n\n:param transform: The 2D transform.\n @see Rotation3d(Rotation2d)\n @see Translation3d(Translation2d)", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "transform3d", "type": "wpimath.geometry.Transform3d"}], "tooltip": "Returns the X component of the transformation's translation.\n\n:returns: The x component of the transformation's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "transform3d", "type": "wpimath.geometry.Transform3d"}], "tooltip": "Returns the Y component of the transformation's translation.\n\n:returns: The y component of the transformation's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "transform3d", "type": "wpimath.geometry.Transform3d"}], "tooltip": "Returns the Z component of the transformation's translation.\n\n:returns: The z component of the transformation's translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "Z"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Transform3d", "args": [{"name": "matrix", "type": "numpy.ndarray[numpy.float64[4, 4]]"}], "tooltip": "Constructs a transform with the specified affine transformation matrix.\n\n:param matrix: The affine transformation matrix.\n @throws std::domain_error if the affine transformation matrix is invalid.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "fromMatrix"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTransform3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Transform3d", "args": [{"name": "transform3d", "type": "wpimath.geometry.Transform3d"}], "tooltip": "Invert the transformation. This is useful for undoing a transformation.\n\n:returns: The inverted transformation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "inverse"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation3d", "args": [{"name": "transform3d", "type": "wpimath.geometry.Transform3d"}], "tooltip": "Returns the rotational component of the transformation.\n\n:returns: Reference to the rotational component of the transform.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "rotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[4, 4]]", "args": [{"name": "transform3d", "type": "wpimath.geometry.Transform3d"}], "tooltip": "Returns an affine transformation matrix representation of this\ntransformation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "toMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation3d", "args": [{"name": "transform3d", "type": "wpimath.geometry.Transform3d"}], "tooltip": "Returns the translation component of the transformation.\n\n:returns: Reference to the translational component of the transform.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Transform3d", "FUNC": "translation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Translation2d.ts b/src/blocks/generated/class_wpimath.geometry.Translation2d.ts
index 8183bff3..a01ffce8 100644
--- a/src/blocks/generated/class_wpimath.geometry.Translation2d.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Translation2d.ts
@@ -18,23 +18,23 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Translation2d", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "translation2d", "selfType": "wpimath.geometry.Translation2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "VAR": "y"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Translation2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "translation2d", "selfType": "wpimath.geometry.Translation2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "VAR": "x_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Translation2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "translation2d", "selfType": "wpimath.geometry.Translation2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "VAR": "y_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [], "tooltip": "Constructs a Translation2d with X and Y components equal to zero.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}], "tooltip": "Constructs a Translation2d with the X and Y components equal to the\nprovided values.\n\n:param x: The x component of the translation.\n:param y: The y component of the translation.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "distance", "type": "wpimath.units.meters"}, {"name": "angle", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Constructs a Translation2d with the provided distance and angle. This is\nessentially converting from polar coordinates to Cartesian coordinates.\n\n:param distance: The distance from the origin to the end of the translation.\n:param angle: The angle between the x-axis and the translation vector.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "vector", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Constructs a Translation2d from a 2D translation vector. The values are\nassumed to be in meters.\n\n:param vector: The translation vector.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation2d", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Returns the X component of the translation.\n\n:returns: The X component of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation2d", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Returns the Y component of the translation.\n\n:returns: The Y component of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Rotation2d", "args": [{"name": "translation2d", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Returns the angle this translation forms with the positive X axis.\n\n:returns: The angle of the translation", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "angle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation2d", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "other", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Calculates the distance between two translations in 2D space.\n\nThe distance between translations is defined as \u221a((x\u2082\u2212x\u2081)\u00b2+(y\u2082\u2212y\u2081)\u00b2).\n\n:param other: The translation to compute the distance to.\n\n:returns: The distance between the two translations.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "distance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "translation2d", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "arg0", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "distanceFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "x", "type": "wpimath.units.feet"}, {"name": "y", "type": "wpimath.units.feet"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "fromFeet"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "distance", "type": "wpimath.units.feet"}, {"name": "angle", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "fromFeet"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "translation2d", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "translations", "type": "List[wpimath.geometry._geometry.Translation2d]"}], "tooltip": "Returns the nearest Translation2d from a collection of translations\n\n:param translations: The collection of translations.\n\n:returns: The nearest Translation2d from the collection.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "nearest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation2d", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Returns the norm, or distance from the origin to the translation.\n\n:returns: The norm of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "norm"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "translation2d", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "normFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "translation2d", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "other", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "rot", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Rotates this translation around another translation in 2D space.\n\n::\n\n [x_new] [rot.cos, -rot.sin][x - other.x] [other.x]\n [y_new] = [rot.sin, rot.cos][y - other.y] + [other.y]\n\n:param other: The other translation to rotate around.\n:param rot: The rotation to rotate the translation by.\n\n:returns: The new rotated translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "rotateAround"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "translation2d", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "other", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Applies a rotation to the translation in 2D space.\n\nThis multiplies the translation vector by a counterclockwise rotation\nmatrix of the given angle.\n\n::\n\n [x_new] [other.cos, -other.sin][x]\n [y_new] = [other.sin, other.cos][y]\n\nFor example, rotating a Translation2d of <2, 0> by 90 degrees will\nreturn a Translation2d of <0, 2>.\n\n:param other: The rotation to rotate the translation by.\n\n:returns: The new rotated translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "translation2d", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Returns a 2D translation vector representation of this translation.\n\n:returns: A 2D translation vector representation of this translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "toVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Translation2d", "args": [], "tooltip": "Constructs a Translation2d with X and Y components equal to zero.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}], "tooltip": "Constructs a Translation2d with the X and Y components equal to the\nprovided values.\n\n:param x: The x component of the translation.\n:param y: The y component of the translation.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "distance", "type": "wpimath.units.meters"}, {"name": "angle", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Constructs a Translation2d with the provided distance and angle. This is\nessentially converting from polar coordinates to Cartesian coordinates.\n\n:param distance: The distance from the origin to the end of the translation.\n:param angle: The angle between the x-axis and the translation vector.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "vector", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Constructs a Translation2d from a 2D translation vector. The values are\nassumed to be in meters.\n\n:param vector: The translation vector.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation2d", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Returns the X component of the translation.\n\n:returns: The X component of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation2d", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Returns the Y component of the translation.\n\n:returns: The Y component of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Rotation2d", "args": [{"name": "translation2d", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Returns the angle this translation forms with the positive X axis.\n\n:returns: The angle of the translation", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "angle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation2d", "type": "wpimath.geometry.Translation2d"}, {"name": "other", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Calculates the distance between two translations in 2D space.\n\nThe distance between translations is defined as \u221a((x\u2082\u2212x\u2081)\u00b2+(y\u2082\u2212y\u2081)\u00b2).\n\n:param other: The translation to compute the distance to.\n\n:returns: The distance between the two translations.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "distance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "translation2d", "type": "wpimath.geometry.Translation2d"}, {"name": "arg0", "type": "wpimath.geometry.Translation2d"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "distanceFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "x", "type": "wpimath.units.feet"}, {"name": "y", "type": "wpimath.units.feet"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "fromFeet"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "distance", "type": "wpimath.units.feet"}, {"name": "angle", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "fromFeet"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "translation2d", "type": "wpimath.geometry.Translation2d"}, {"name": "translations", "type": "List[wpimath.geometry._geometry.Translation2d]"}], "tooltip": "Returns the nearest Translation2d from a collection of translations\n\n:param translations: The collection of translations.\n\n:returns: The nearest Translation2d from the collection.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "nearest"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation2d", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Returns the norm, or distance from the origin to the translation.\n\n:returns: The norm of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "norm"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "translation2d", "type": "wpimath.geometry.Translation2d"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "normFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "translation2d", "type": "wpimath.geometry.Translation2d"}, {"name": "other", "type": "wpimath.geometry.Translation2d"}, {"name": "rot", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Rotates this translation around another translation in 2D space.\n\n::\n\n [x_new] [rot.cos, -rot.sin][x - other.x] [other.x]\n [y_new] = [rot.sin, rot.cos][y - other.y] + [other.y]\n\n:param other: The other translation to rotate around.\n:param rot: The rotation to rotate the translation by.\n\n:returns: The new rotated translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "rotateAround"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "translation2d", "type": "wpimath.geometry.Translation2d"}, {"name": "other", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Applies a rotation to the translation in 2D space.\n\nThis multiplies the translation vector by a counterclockwise rotation\nmatrix of the given angle.\n\n::\n\n [x_new] [other.cos, -other.sin][x]\n [y_new] = [other.sin, other.cos][y]\n\nFor example, rotating a Translation2d of <2, 0> by 90 degrees will\nreturn a Translation2d of <0, 2>.\n\n:param other: The rotation to rotate the translation by.\n\n:returns: The new rotated translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "translation2d", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Returns a 2D translation vector representation of this translation.\n\n:returns: A 2D translation vector representation of this translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation2d", "FUNC": "toVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Translation3d.ts b/src/blocks/generated/class_wpimath.geometry.Translation3d.ts
index 1fa0af07..791c0d3c 100644
--- a/src/blocks/generated/class_wpimath.geometry.Translation3d.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Translation3d.ts
@@ -20,22 +20,22 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Translation3d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "translation3d", "selfType": "wpimath.geometry.Translation3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "VAR": "x_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Translation3d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "translation3d", "selfType": "wpimath.geometry.Translation3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "VAR": "y_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Translation3d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "translation3d", "selfType": "wpimath.geometry.Translation3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "VAR": "z_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Translation3d", "args": [], "tooltip": "Constructs a Translation3d with X, Y, and Z components equal to zero.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Translation3d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "z", "type": "wpimath.units.meters"}], "tooltip": "Constructs a Translation3d with the X, Y, and Z components equal to the\nprovided values.\n\n:param x: The x component of the translation.\n:param y: The y component of the translation.\n:param z: The z component of the translation.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Translation3d", "args": [{"name": "distance", "type": "wpimath.units.meters"}, {"name": "angle", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Constructs a Translation3d with the provided distance and angle. This is\nessentially converting from polar coordinates to Cartesian coordinates.\n\n:param distance: The distance from the origin to the end of the translation.\n:param angle: The angle between the x-axis and the translation vector.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Translation3d", "args": [{"name": "vector", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Constructs a Translation3d from a 3D translation vector. The values are\nassumed to be in meters.\n\n:param vector: The translation vector.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Translation3d", "args": [{"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Constructs a 3D translation from a 2D translation in the X-Y plane.\n\n:param translation: The 2D translation.\n @see Pose3d(Pose2d)\n @see Transform3d(Transform2d)", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation3d", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Returns the X component of the translation.\n\n:returns: The Z component of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation3d", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Returns the Y component of the translation.\n\n:returns: The Y component of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation3d", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Returns the Z component of the translation.\n\n:returns: The Z component of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "Z"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation3d", "type": "wpimath.geometry._geometry.Translation3d"}, {"name": "other", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Calculates the distance between two translations in 3D space.\n\nThe distance between translations is defined as\n\u221a((x\u2082\u2212x\u2081)\u00b2+(y\u2082\u2212y\u2081)\u00b2+(z\u2082\u2212z\u2081)\u00b2).\n\n:param other: The translation to compute the distance to.\n\n:returns: The distance between the two translations.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "distance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "translation3d", "type": "wpimath.geometry._geometry.Translation3d"}, {"name": "arg0", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "distanceFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Translation3d", "args": [{"name": "x", "type": "wpimath.units.feet"}, {"name": "y", "type": "wpimath.units.feet"}, {"name": "z", "type": "wpimath.units.feet"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "fromFeet"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation3d", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Returns the norm, or distance from the origin to the translation.\n\n:returns: The norm of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "norm"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "translation3d", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "normFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation3d", "args": [{"name": "translation3d", "type": "wpimath.geometry._geometry.Translation3d"}, {"name": "other", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Applies a rotation to the translation in 3D space.\n\nFor example, rotating a Translation3d of <2, 0, 0> by 90 degrees\naround the Z axis will return a Translation3d of <0, 2, 0>.\n\n:param other: The rotation to rotate the translation by.\n\n:returns: The new rotated translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "translation3d", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Returns a Translation2d representing this Translation3d projected into the\nX-Y plane.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "toTranslation2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "translation3d", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Returns a 3D translation vector representation of this translation.\n\n:returns: A 3D translation vector representation of this translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "toVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Translation3d", "args": [], "tooltip": "Constructs a Translation3d with X, Y, and Z components equal to zero.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Translation3d", "args": [{"name": "x", "type": "wpimath.units.meters"}, {"name": "y", "type": "wpimath.units.meters"}, {"name": "z", "type": "wpimath.units.meters"}], "tooltip": "Constructs a Translation3d with the X, Y, and Z components equal to the\nprovided values.\n\n:param x: The x component of the translation.\n:param y: The y component of the translation.\n:param z: The z component of the translation.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Translation3d", "args": [{"name": "distance", "type": "wpimath.units.meters"}, {"name": "angle", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Constructs a Translation3d with the provided distance and angle. This is\nessentially converting from polar coordinates to Cartesian coordinates.\n\n:param distance: The distance from the origin to the end of the translation.\n:param angle: The angle between the x-axis and the translation vector.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Translation3d", "args": [{"name": "vector", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Constructs a Translation3d from a 3D translation vector. The values are\nassumed to be in meters.\n\n:param vector: The translation vector.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Translation3d", "args": [{"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Constructs a 3D translation from a 2D translation in the X-Y plane.\n\n:param translation: The 2D translation.\n @see Pose3d(Pose2d)\n @see Transform3d(Transform2d)", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation3d", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Returns the X component of the translation.\n\n:returns: The Z component of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "X"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation3d", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Returns the Y component of the translation.\n\n:returns: The Y component of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "Y"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation3d", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Returns the Z component of the translation.\n\n:returns: The Z component of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "Z"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation3d", "type": "wpimath.geometry.Translation3d"}, {"name": "other", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Calculates the distance between two translations in 3D space.\n\nThe distance between translations is defined as\n\u221a((x\u2082\u2212x\u2081)\u00b2+(y\u2082\u2212y\u2081)\u00b2+(z\u2082\u2212z\u2081)\u00b2).\n\n:param other: The translation to compute the distance to.\n\n:returns: The distance between the two translations.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "distance"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "translation3d", "type": "wpimath.geometry.Translation3d"}, {"name": "arg0", "type": "wpimath.geometry.Translation3d"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "distanceFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Translation3d", "args": [{"name": "x", "type": "wpimath.units.feet"}, {"name": "y", "type": "wpimath.units.feet"}, {"name": "z", "type": "wpimath.units.feet"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "fromFeet"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters", "args": [{"name": "translation3d", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Returns the norm, or distance from the origin to the translation.\n\n:returns: The norm of the translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "norm"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.feet", "args": [{"name": "translation3d", "type": "wpimath.geometry.Translation3d"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "normFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation3d", "args": [{"name": "translation3d", "type": "wpimath.geometry.Translation3d"}, {"name": "other", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Applies a rotation to the translation in 3D space.\n\nFor example, rotating a Translation3d of <2, 0, 0> by 90 degrees\naround the Z axis will return a Translation3d of <0, 2, 0>.\n\n:param other: The rotation to rotate the translation by.\n\n:returns: The new rotated translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "rotateBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "translation3d", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Returns a Translation2d representing this Translation3d projected into the\nX-Y plane.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "toTranslation2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "translation3d", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Returns a 3D translation vector representation of this translation.\n\n:returns: A 3D translation vector representation of this translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Translation3d", "FUNC": "toVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Twist2d.ts b/src/blocks/generated/class_wpimath.geometry.Twist2d.ts
index 074b4b5f..dd2209ca 100644
--- a/src/blocks/generated/class_wpimath.geometry.Twist2d.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Twist2d.ts
@@ -33,8 +33,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Twist2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "twist2d", "selfType": "wpimath.geometry.Twist2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist2d", "VAR": "dx_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTwist2d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Twist2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "twist2d", "selfType": "wpimath.geometry.Twist2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist2d", "VAR": "dy_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTwist2d"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Twist2d", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "twist2d", "selfType": "wpimath.geometry.Twist2d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist2d", "VAR": "dy_feet"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTwist2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "dx", "type": "wpimath.units.meters"}, {"name": "dy", "type": "wpimath.units.meters"}, {"name": "dtheta", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist2d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "dx", "type": "wpimath.units.feet"}, {"name": "dy", "type": "wpimath.units.feet"}, {"name": "dtheta", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist2d", "FUNC": "fromFeet"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "dx", "type": "wpimath.units.meters"}, {"name": "dy", "type": "wpimath.units.meters"}, {"name": "dtheta", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist2d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "dx", "type": "wpimath.units.feet"}, {"name": "dy", "type": "wpimath.units.feet"}, {"name": "dtheta", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist2d", "FUNC": "fromFeet"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.geometry.Twist3d.ts b/src/blocks/generated/class_wpimath.geometry.Twist3d.ts
index 8620cce0..cca9bc72 100644
--- a/src/blocks/generated/class_wpimath.geometry.Twist3d.ts
+++ b/src/blocks/generated/class_wpimath.geometry.Twist3d.ts
@@ -45,8 +45,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Twist3d", "varType": "wpimath.units.degrees", "importModule": "", "selfLabel": "twist3d", "selfType": "wpimath.geometry.Twist3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist3d", "VAR": "ry_degrees"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTwist3d"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Twist3d", "varType": "wpimath.units.degrees", "importModule": "", "selfLabel": "twist3d", "selfType": "wpimath.geometry.Twist3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist3d", "VAR": "rz_degrees"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTwist3d"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.geometry.Twist3d", "varType": "wpimath.units.degrees", "importModule": "", "selfLabel": "twist3d", "selfType": "wpimath.geometry.Twist3d"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist3d", "VAR": "rz_degrees"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTwist3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry._geometry.Twist3d", "args": [{"name": "dx", "type": "wpimath.units.meters"}, {"name": "dy", "type": "wpimath.units.meters"}, {"name": "dz", "type": "wpimath.units.meters"}, {"name": "rx", "type": "wpimath.units.radians"}, {"name": "ry", "type": "wpimath.units.radians"}, {"name": "rz", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist3d"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry._geometry.Twist3d", "args": [{"name": "dx", "type": "wpimath.units.feet"}, {"name": "dy", "type": "wpimath.units.feet"}, {"name": "dz", "type": "wpimath.units.feet"}, {"name": "rx", "type": "wpimath.units.radians"}, {"name": "ry", "type": "wpimath.units.radians"}, {"name": "rz", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist3d", "FUNC": "fromFeet"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.geometry.Twist3d", "args": [{"name": "dx", "type": "wpimath.units.meters"}, {"name": "dy", "type": "wpimath.units.meters"}, {"name": "dz", "type": "wpimath.units.meters"}, {"name": "rx", "type": "wpimath.units.radians"}, {"name": "ry", "type": "wpimath.units.radians"}, {"name": "rz", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist3d"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.geometry.Twist3d", "args": [{"name": "dx", "type": "wpimath.units.feet"}, {"name": "dy", "type": "wpimath.units.feet"}, {"name": "dz", "type": "wpimath.units.feet"}, {"name": "rx", "type": "wpimath.units.radians"}, {"name": "ry", "type": "wpimath.units.radians"}, {"name": "rz", "type": "wpimath.units.radians"}], "tooltip": "", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry.Twist3d", "FUNC": "fromFeet"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableFloatBuffer.ts b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableFloatBuffer.ts
index 2b4c7c20..a94b0e75 100644
--- a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableFloatBuffer.ts
+++ b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableFloatBuffer.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableFloatBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatableFloatBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[float, float, float], float]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableFloatBuffer"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableFloatBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatableFloatBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableFloatBuffer"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableFloatBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableFloatBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "float"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableFloatBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableFloatBuffer"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableFloatBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableFloatBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableFloatBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableFloatBuffer"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, float]]", "args": [{"name": "timeInterpolatableFloatBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableFloatBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableFloatBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableFloatBuffer"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[float]", "args": [{"name": "timeInterpolatableFloatBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableFloatBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableFloatBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableFloatBuffer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableFloatBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatableFloatBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[float, float, float], float]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableFloatBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableFloatBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatableFloatBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableFloatBuffer"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableFloatBuffer", "type": "wpimath.interpolation.TimeInterpolatableFloatBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "float"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableFloatBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableFloatBuffer"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableFloatBuffer", "type": "wpimath.interpolation.TimeInterpolatableFloatBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableFloatBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableFloatBuffer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, float]]", "args": [{"name": "timeInterpolatableFloatBuffer", "type": "wpimath.interpolation.TimeInterpolatableFloatBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableFloatBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableFloatBuffer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[float]", "args": [{"name": "timeInterpolatableFloatBuffer", "type": "wpimath.interpolation.TimeInterpolatableFloatBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableFloatBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableFloatBuffer"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatablePose2dBuffer.ts b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatablePose2dBuffer.ts
index e6d3f5cd..4533ab5f 100644
--- a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatablePose2dBuffer.ts
+++ b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatablePose2dBuffer.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatablePose2dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatablePose2dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[wpimath.geometry._geometry.Pose2d, wpimath.geometry._geometry.Pose2d, float], wpimath.geometry._geometry.Pose2d]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose2dBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatablePose2dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatablePose2dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose2dBuffer"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatablePose2dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatablePose2dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose2dBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose2dBuffer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatablePose2dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatablePose2dBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose2dBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose2dBuffer"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, wpimath.geometry._geometry.Pose2d]]", "args": [{"name": "timeInterpolatablePose2dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatablePose2dBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose2dBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose2dBuffer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "timeInterpolatablePose2dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatablePose2dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose2dBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose2dBuffer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatablePose2dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatablePose2dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[wpimath.geometry._geometry.Pose2d, wpimath.geometry._geometry.Pose2d, float], wpimath.geometry._geometry.Pose2d]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose2dBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatablePose2dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatablePose2dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose2dBuffer"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatablePose2dBuffer", "type": "wpimath.interpolation.TimeInterpolatablePose2dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose2dBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose2dBuffer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatablePose2dBuffer", "type": "wpimath.interpolation.TimeInterpolatablePose2dBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose2dBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose2dBuffer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, wpimath.geometry._geometry.Pose2d]]", "args": [{"name": "timeInterpolatablePose2dBuffer", "type": "wpimath.interpolation.TimeInterpolatablePose2dBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose2dBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose2dBuffer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "timeInterpolatablePose2dBuffer", "type": "wpimath.interpolation.TimeInterpolatablePose2dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose2dBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose2dBuffer"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatablePose3dBuffer.ts b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatablePose3dBuffer.ts
index 42b36a6d..7d1e86ab 100644
--- a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatablePose3dBuffer.ts
+++ b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatablePose3dBuffer.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatablePose3dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatablePose3dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[wpimath.geometry._geometry.Pose3d, wpimath.geometry._geometry.Pose3d, float], wpimath.geometry._geometry.Pose3d]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose3dBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatablePose3dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatablePose3dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose3dBuffer"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatablePose3dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatablePose3dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose3dBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose3dBuffer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatablePose3dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatablePose3dBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose3dBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose3dBuffer"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, wpimath.geometry._geometry.Pose3d]]", "args": [{"name": "timeInterpolatablePose3dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatablePose3dBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose3dBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose3dBuffer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "timeInterpolatablePose3dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatablePose3dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose3dBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose3dBuffer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatablePose3dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatablePose3dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[wpimath.geometry._geometry.Pose3d, wpimath.geometry._geometry.Pose3d, float], wpimath.geometry._geometry.Pose3d]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose3dBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatablePose3dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatablePose3dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose3dBuffer"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatablePose3dBuffer", "type": "wpimath.interpolation.TimeInterpolatablePose3dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose3dBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose3dBuffer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatablePose3dBuffer", "type": "wpimath.interpolation.TimeInterpolatablePose3dBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose3dBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose3dBuffer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, wpimath.geometry._geometry.Pose3d]]", "args": [{"name": "timeInterpolatablePose3dBuffer", "type": "wpimath.interpolation.TimeInterpolatablePose3dBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose3dBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose3dBuffer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Pose3d]", "args": [{"name": "timeInterpolatablePose3dBuffer", "type": "wpimath.interpolation.TimeInterpolatablePose3dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatablePose3dBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatablePose3dBuffer"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableRotation2dBuffer.ts b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableRotation2dBuffer.ts
index eba6908d..b81aaf67 100644
--- a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableRotation2dBuffer.ts
+++ b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableRotation2dBuffer.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableRotation2dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatableRotation2dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, float], wpimath.geometry._geometry.Rotation2d]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableRotation2dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatableRotation2dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableRotation2dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableRotation2dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation2dBuffer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableRotation2dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableRotation2dBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation2dBuffer"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, wpimath.geometry._geometry.Rotation2d]]", "args": [{"name": "timeInterpolatableRotation2dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableRotation2dBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation2dBuffer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Rotation2d]", "args": [{"name": "timeInterpolatableRotation2dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableRotation2dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation2dBuffer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableRotation2dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, float], wpimath.geometry._geometry.Rotation2d]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableRotation2dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableRotation2dBuffer", "type": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation2dBuffer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableRotation2dBuffer", "type": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation2dBuffer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, wpimath.geometry._geometry.Rotation2d]]", "args": [{"name": "timeInterpolatableRotation2dBuffer", "type": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation2dBuffer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Rotation2d]", "args": [{"name": "timeInterpolatableRotation2dBuffer", "type": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation2dBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation2dBuffer"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableRotation3dBuffer.ts b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableRotation3dBuffer.ts
index 16fb9506..d48e149b 100644
--- a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableRotation3dBuffer.ts
+++ b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableRotation3dBuffer.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableRotation3dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatableRotation3dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[wpimath.geometry._geometry.Rotation3d, wpimath.geometry._geometry.Rotation3d, float], wpimath.geometry._geometry.Rotation3d]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableRotation3dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatableRotation3dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableRotation3dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableRotation3dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation3dBuffer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableRotation3dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableRotation3dBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation3dBuffer"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, wpimath.geometry._geometry.Rotation3d]]", "args": [{"name": "timeInterpolatableRotation3dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableRotation3dBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation3dBuffer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRotation3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Rotation3d]", "args": [{"name": "timeInterpolatableRotation3dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableRotation3dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation3dBuffer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableRotation3dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[wpimath.geometry._geometry.Rotation3d, wpimath.geometry._geometry.Rotation3d, float], wpimath.geometry._geometry.Rotation3d]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableRotation3dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableRotation3dBuffer", "type": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation3dBuffer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableRotation3dBuffer", "type": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation3dBuffer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, wpimath.geometry._geometry.Rotation3d]]", "args": [{"name": "timeInterpolatableRotation3dBuffer", "type": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation3dBuffer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Rotation3d]", "args": [{"name": "timeInterpolatableRotation3dBuffer", "type": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableRotation3dBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableRotation3dBuffer"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableTranslation2dBuffer.ts b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableTranslation2dBuffer.ts
index 296017b9..005aeefc 100644
--- a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableTranslation2dBuffer.ts
+++ b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableTranslation2dBuffer.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation2dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatableTranslation2dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, float], wpimath.geometry._geometry.Translation2d]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation2dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatableTranslation2dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableTranslation2dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableTranslation2dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation2dBuffer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableTranslation2dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableTranslation2dBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation2dBuffer"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, wpimath.geometry._geometry.Translation2d]]", "args": [{"name": "timeInterpolatableTranslation2dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableTranslation2dBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation2dBuffer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Translation2d]", "args": [{"name": "timeInterpolatableTranslation2dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableTranslation2dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation2dBuffer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation2dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, float], wpimath.geometry._geometry.Translation2d]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation2dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableTranslation2dBuffer", "type": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation2dBuffer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableTranslation2dBuffer", "type": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation2dBuffer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, wpimath.geometry._geometry.Translation2d]]", "args": [{"name": "timeInterpolatableTranslation2dBuffer", "type": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation2dBuffer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Translation2d]", "args": [{"name": "timeInterpolatableTranslation2dBuffer", "type": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation2dBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation2dBuffer"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableTranslation3dBuffer.ts b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableTranslation3dBuffer.ts
index 24f83f55..7367bf89 100644
--- a/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableTranslation3dBuffer.ts
+++ b/src/blocks/generated/class_wpimath.interpolation.TimeInterpolatableTranslation3dBuffer.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation3dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatableTranslation3dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[wpimath.geometry._geometry.Translation3d, wpimath.geometry._geometry.Translation3d, float], wpimath.geometry._geometry.Translation3d]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation3dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation._interpolation.TimeInterpolatableTranslation3dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableTranslation3dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableTranslation3dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation3dBuffer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableTranslation3dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableTranslation3dBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation3dBuffer"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, wpimath.geometry._geometry.Translation3d]]", "args": [{"name": "timeInterpolatableTranslation3dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableTranslation3dBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation3dBuffer"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation3d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Translation3d]", "args": [{"name": "timeInterpolatableTranslation3dBuffer", "type": "wpimath.interpolation._interpolation.TimeInterpolatableTranslation3dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation3dBuffer"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation3dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}, {"name": "func", "type": "Callable[[wpimath.geometry._geometry.Translation3d, wpimath.geometry._geometry.Translation3d, float], wpimath.geometry._geometry.Translation3d]"}], "tooltip": "Create a new TimeInterpolatableBuffer.\n\n:param historySize: The history size of the buffer.\n:param func: The function used to interpolate between values.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation3dBuffer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer", "args": [{"name": "historySize", "type": "wpimath.units.seconds"}], "tooltip": "Create a new TimeInterpolatableBuffer. By default, the interpolation\nfunction is wpi::Lerp except for Pose2d, which uses the pose exponential.\n\n:param historySize: The history size of the buffer.", "importModule": "wpimath.interpolation"}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableTranslation3dBuffer", "type": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}, {"name": "sample", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Add a sample to the buffer.\n\n:param time: The timestamp of the sample.\n:param sample: The sample object.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer", "FUNC": "addSample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation3dBuffer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "timeInterpolatableTranslation3dBuffer", "type": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer"}], "tooltip": "Clear all old samples.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer", "FUNC": "clear"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation3dBuffer"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[tuple[wpimath.units.seconds, wpimath.geometry._geometry.Translation3d]]", "args": [{"name": "timeInterpolatableTranslation3dBuffer", "type": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer"}], "tooltip": "Grant access to the internal sample buffer. Used in Pose Estimation to\nreplay odometry inputs stored within this buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer", "FUNC": "getInternalBuffer"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation3dBuffer"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[wpimath.geometry._geometry.Translation3d]", "args": [{"name": "timeInterpolatableTranslation3dBuffer", "type": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer"}, {"name": "time", "type": "wpimath.units.seconds"}], "tooltip": "Sample the buffer at the given time. If the buffer is empty, an empty\noptional is returned.\n\n:param time: The time at which to sample the buffer.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.interpolation.TimeInterpolatableTranslation3dBuffer", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTimeInterpolatableTranslation3dBuffer"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.ChassisSpeeds.ts b/src/blocks/generated/class_wpimath.kinematics.ChassisSpeeds.ts
index 53652ff7..a61ba5d3 100644
--- a/src/blocks/generated/class_wpimath.kinematics.ChassisSpeeds.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.ChassisSpeeds.ts
@@ -33,15 +33,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.ChassisSpeeds", "varType": "wpimath.units.feet_per_second", "importModule": "", "selfLabel": "chassisSpeeds", "selfType": "wpimath.kinematics.ChassisSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "VAR": "vx_fps"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.ChassisSpeeds", "varType": "wpimath.units.feet_per_second", "importModule": "", "selfLabel": "chassisSpeeds", "selfType": "wpimath.kinematics.ChassisSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "VAR": "vy_fps"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.ChassisSpeeds", "varType": "wpimath.units.feet_per_second", "importModule": "", "selfLabel": "chassisSpeeds", "selfType": "wpimath.kinematics.ChassisSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "VAR": "vy_fps"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "vx", "type": "wpimath.units.meters_per_second"}, {"name": "vy", "type": "wpimath.units.meters_per_second"}, {"name": "omega", "type": "wpimath.units.radians_per_second"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "vx", "type": "wpimath.units.meters_per_second"}, {"name": "vy", "type": "wpimath.units.meters_per_second"}, {"name": "omega", "type": "wpimath.units.radians_per_second"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Discretizes a continuous-time chassis speed.\n\nThis function converts a continuous-time chassis speed into a discrete-time\none such that when the discrete-time chassis speed is applied for one\ntimestep, the robot moves as if the velocity components are independent\n(i.e., the robot moves v_x * dt along the x-axis, v_y * dt along the\ny-axis, and omega * dt around the z-axis).\n\nThis is useful for compensating for translational skew when translating and\nrotating a swerve drivetrain.\n\n:param vx: Forward velocity.\n:param vy: Sideways velocity.\n:param omega: Angular velocity.\n:param dt: The duration of the timestep the speeds should be applied for.\n\n:returns: Discretized ChassisSpeeds.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "discretize"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "continuousSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Discretizes a continuous-time chassis speed.\n\nThis function converts a continuous-time chassis speed into a discrete-time\none such that when the discrete-time chassis speed is applied for one\ntimestep, the robot moves as if the velocity components are independent\n(i.e., the robot moves v_x * dt along the x-axis, v_y * dt along the\ny-axis, and omega * dt around the z-axis).\n\nThis is useful for compensating for translational skew when translating and\nrotating a swerve drivetrain.\n\n:param continuousSpeeds: The continuous speeds.\n:param dt: The duration of the timestep the speeds should be applied for.\n\n:returns: Discretized ChassisSpeeds.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "discretize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "vx", "type": "wpimath.units.feet_per_second"}, {"name": "vy", "type": "wpimath.units.feet_per_second"}, {"name": "omega", "type": "wpimath.units.radians_per_second"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "fromFeet"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "vx", "type": "wpimath.units.meters_per_second"}, {"name": "vy", "type": "wpimath.units.meters_per_second"}, {"name": "omega", "type": "wpimath.units.radians_per_second"}, {"name": "robotAngle", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Converts a user provided field-relative set of speeds into a robot-relative\nChassisSpeeds object.\n\n:param vx: The component of speed in the x direction relative to the field.\n Positive x is away from your alliance wall.\n:param vy: The component of speed in the y direction relative to the field.\n Positive y is to your left when standing behind the alliance wall.\n:param omega: The angular rate of the robot.\n:param robotAngle: The angle of the robot as measured by a gyroscope. The\n robot's angle is considered to be zero when it is facing directly away from\n your alliance station wall. Remember that this should be CCW positive.\n\n:returns: ChassisSpeeds object representing the speeds in the robot's frame\n of reference.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "fromFieldRelativeSpeeds"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "fieldRelativeSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "robotAngle", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Converts a user provided field-relative ChassisSpeeds object into a\nrobot-relative ChassisSpeeds object.\n\n:param fieldRelativeSpeeds: The ChassisSpeeds object representing the speeds\n in the field frame of reference. Positive x is away from your alliance\n wall. Positive y is to your left when standing behind the alliance wall.\n:param robotAngle: The angle of the robot as measured by a gyroscope. The\n robot's angle is considered to be zero when it is facing directly away\n from your alliance station wall. Remember that this should be CCW\n positive.\n\n:returns: ChassisSpeeds object representing the speeds in the robot's frame\n of reference.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "fromFieldRelativeSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "vx", "type": "wpimath.units.meters_per_second"}, {"name": "vy", "type": "wpimath.units.meters_per_second"}, {"name": "omega", "type": "wpimath.units.radians_per_second"}, {"name": "robotAngle", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Converts a user provided robot-relative set of speeds into a field-relative\nChassisSpeeds object.\n\n:param vx: The component of speed in the x direction relative to the robot.\n Positive x is towards the robot's front.\n:param vy: The component of speed in the y direction relative to the robot.\n Positive y is towards the robot's left.\n:param omega: The angular rate of the robot.\n:param robotAngle: The angle of the robot as measured by a gyroscope. The\n robot's angle is considered to be zero when it is facing directly away from\n your alliance station wall. Remember that this should be CCW positive.\n\n:returns: ChassisSpeeds object representing the speeds in the field's frame\n of reference.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "fromRobotRelativeSpeeds"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "robotRelativeSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "robotAngle", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Converts a user provided robot-relative ChassisSpeeds object into a\nfield-relative ChassisSpeeds object.\n\n:param robotRelativeSpeeds: The ChassisSpeeds object representing the speeds\n in the robot frame of reference. Positive x is the towards robot's\n front. Positive y is towards the robot's left.\n:param robotAngle: The angle of the robot as measured by a gyroscope. The\n robot's angle is considered to be zero when it is facing directly away\n from your alliance station wall. Remember that this should be CCW\n positive.\n\n:returns: ChassisSpeeds object representing the speeds in the field's frame\n of reference.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "fromRobotRelativeSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Creates a Twist2d from ChassisSpeeds.\n\n:param dt: The duration of the timestep.\n\n:returns: Twist2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "vx", "type": "wpimath.units.meters_per_second"}, {"name": "vy", "type": "wpimath.units.meters_per_second"}, {"name": "omega", "type": "wpimath.units.radians_per_second"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "vx", "type": "wpimath.units.meters_per_second"}, {"name": "vy", "type": "wpimath.units.meters_per_second"}, {"name": "omega", "type": "wpimath.units.radians_per_second"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Discretizes a continuous-time chassis speed.\n\nThis function converts a continuous-time chassis speed into a discrete-time\none such that when the discrete-time chassis speed is applied for one\ntimestep, the robot moves as if the velocity components are independent\n(i.e., the robot moves v_x * dt along the x-axis, v_y * dt along the\ny-axis, and omega * dt around the z-axis).\n\nThis is useful for compensating for translational skew when translating and\nrotating a swerve drivetrain.\n\n:param vx: Forward velocity.\n:param vy: Sideways velocity.\n:param omega: Angular velocity.\n:param dt: The duration of the timestep the speeds should be applied for.\n\n:returns: Discretized ChassisSpeeds.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "discretize"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "continuousSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Discretizes a continuous-time chassis speed.\n\nThis function converts a continuous-time chassis speed into a discrete-time\none such that when the discrete-time chassis speed is applied for one\ntimestep, the robot moves as if the velocity components are independent\n(i.e., the robot moves v_x * dt along the x-axis, v_y * dt along the\ny-axis, and omega * dt around the z-axis).\n\nThis is useful for compensating for translational skew when translating and\nrotating a swerve drivetrain.\n\n:param continuousSpeeds: The continuous speeds.\n:param dt: The duration of the timestep the speeds should be applied for.\n\n:returns: Discretized ChassisSpeeds.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "discretize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "vx", "type": "wpimath.units.feet_per_second"}, {"name": "vy", "type": "wpimath.units.feet_per_second"}, {"name": "omega", "type": "wpimath.units.radians_per_second"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "fromFeet"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "vx", "type": "wpimath.units.meters_per_second"}, {"name": "vy", "type": "wpimath.units.meters_per_second"}, {"name": "omega", "type": "wpimath.units.radians_per_second"}, {"name": "robotAngle", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Converts a user provided field-relative set of speeds into a robot-relative\nChassisSpeeds object.\n\n:param vx: The component of speed in the x direction relative to the field.\n Positive x is away from your alliance wall.\n:param vy: The component of speed in the y direction relative to the field.\n Positive y is to your left when standing behind the alliance wall.\n:param omega: The angular rate of the robot.\n:param robotAngle: The angle of the robot as measured by a gyroscope. The\n robot's angle is considered to be zero when it is facing directly away from\n your alliance station wall. Remember that this should be CCW positive.\n\n:returns: ChassisSpeeds object representing the speeds in the robot's frame\n of reference.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "fromFieldRelativeSpeeds"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "fieldRelativeSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "robotAngle", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Converts a user provided field-relative ChassisSpeeds object into a\nrobot-relative ChassisSpeeds object.\n\n:param fieldRelativeSpeeds: The ChassisSpeeds object representing the speeds\n in the field frame of reference. Positive x is away from your alliance\n wall. Positive y is to your left when standing behind the alliance wall.\n:param robotAngle: The angle of the robot as measured by a gyroscope. The\n robot's angle is considered to be zero when it is facing directly away\n from your alliance station wall. Remember that this should be CCW\n positive.\n\n:returns: ChassisSpeeds object representing the speeds in the robot's frame\n of reference.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "fromFieldRelativeSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "vx", "type": "wpimath.units.meters_per_second"}, {"name": "vy", "type": "wpimath.units.meters_per_second"}, {"name": "omega", "type": "wpimath.units.radians_per_second"}, {"name": "robotAngle", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Converts a user provided robot-relative set of speeds into a field-relative\nChassisSpeeds object.\n\n:param vx: The component of speed in the x direction relative to the robot.\n Positive x is towards the robot's front.\n:param vy: The component of speed in the y direction relative to the robot.\n Positive y is towards the robot's left.\n:param omega: The angular rate of the robot.\n:param robotAngle: The angle of the robot as measured by a gyroscope. The\n robot's angle is considered to be zero when it is facing directly away from\n your alliance station wall. Remember that this should be CCW positive.\n\n:returns: ChassisSpeeds object representing the speeds in the field's frame\n of reference.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "fromRobotRelativeSpeeds"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "robotRelativeSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "robotAngle", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Converts a user provided robot-relative ChassisSpeeds object into a\nfield-relative ChassisSpeeds object.\n\n:param robotRelativeSpeeds: The ChassisSpeeds object representing the speeds\n in the robot frame of reference. Positive x is the towards robot's\n front. Positive y is towards the robot's left.\n:param robotAngle: The angle of the robot as measured by a gyroscope. The\n robot's angle is considered to be zero when it is facing directly away\n from your alliance station wall. Remember that this should be CCW\n positive.\n\n:returns: ChassisSpeeds object representing the speeds in the field's frame\n of reference.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "fromRobotRelativeSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Creates a Twist2d from ChassisSpeeds.\n\n:param dt: The duration of the timestep.\n\n:returns: Twist2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.ChassisSpeeds", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveKinematics.ts b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveKinematics.ts
index 4735705e..f1d54dd5 100644
--- a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveKinematics.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveKinematics.ts
@@ -14,12 +14,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.DifferentialDriveKinematics", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "differentialDriveKinematics", "selfType": "wpimath.kinematics.DifferentialDriveKinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics", "VAR": "trackWidth"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveKinematics", "args": [{"name": "trackWidth", "type": "wpimath.units.meters"}], "tooltip": "Constructs a differential drive kinematics object.\n\n:param trackWidth: The track width of the drivetrain. Theoretically, this is\n the distance between the left wheels and right wheels. However, the\n empirical value may be larger than the physical measured value due to\n scrubbing effects.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions", "args": [{"name": "differentialDriveKinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}, {"name": "start", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "differentialDriveKinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}, {"name": "wheelSpeeds", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelSpeeds"}], "tooltip": "Returns a chassis speed from left and right component velocities using\nforward kinematics.\n\n:param wheelSpeeds: The left and right velocities.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "differentialDriveKinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Returns a twist from left and right distance deltas using\nforward kinematics.\n\n:param leftDistance: The distance measured by the left encoder.\n:param rightDistance: The distance measured by the right encoder.\n\n:returns: The resulting Twist2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "differentialDriveKinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}, {"name": "start", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveWheelSpeeds", "args": [{"name": "differentialDriveKinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}], "tooltip": "Returns left and right component velocities from a chassis speed using\ninverse kinematics.\n\n:param chassisSpeeds: The linear and angular (dx and dtheta) components that\n represent the chassis' speed.\n\n:returns: The left and right velocities.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.DifferentialDriveKinematics", "args": [{"name": "trackWidth", "type": "wpimath.units.meters"}], "tooltip": "Constructs a differential drive kinematics object.\n\n:param trackWidth: The track width of the drivetrain. Theoretically, this is\n the distance between the left wheels and right wheels. However, the\n empirical value may be larger than the physical measured value due to\n scrubbing effects.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.DifferentialDriveWheelPositions", "args": [{"name": "differentialDriveKinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}, {"name": "start", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "differentialDriveKinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}, {"name": "wheelSpeeds", "type": "wpimath.kinematics.DifferentialDriveWheelSpeeds"}], "tooltip": "Returns a chassis speed from left and right component velocities using\nforward kinematics.\n\n:param wheelSpeeds: The left and right velocities.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "differentialDriveKinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Returns a twist from left and right distance deltas using\nforward kinematics.\n\n:param leftDistance: The distance measured by the left encoder.\n:param rightDistance: The distance measured by the right encoder.\n\n:returns: The resulting Twist2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "differentialDriveKinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}, {"name": "start", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "args": [{"name": "differentialDriveKinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}], "tooltip": "Returns left and right component velocities from a chassis speed using\ninverse kinematics.\n\n:param chassisSpeeds: The linear and angular (dx and dtheta) components that\n represent the chassis' speed.\n\n:returns: The left and right velocities.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveKinematicsBase.ts b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveKinematicsBase.ts
index 8565e205..e0e460e0 100644
--- a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveKinematicsBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveKinematicsBase.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveKinematicsBase", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematicsBase"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions", "args": [{"name": "differentialDriveKinematicsBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematicsBase"}, {"name": "start", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "t", "type": "float"}], "tooltip": "Performs interpolation between two values.\n\n:param start: The value to start at.\n:param end: The value to end at.\n:param t: How far between the two values to interpolate. This should be\n bounded to [0, 1].\n\n:returns: The interpolated value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematicsBase", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "differentialDriveKinematicsBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematicsBase"}, {"name": "wheelSpeeds", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelSpeeds"}], "tooltip": "Performs forward kinematics to return the resulting chassis speed from the\nwheel speeds. This method is often used for odometry -- determining the\nrobot's position on the field using data from the real-world speed of each\nwheel on the robot.\n\n:param wheelSpeeds: The speeds of the wheels.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematicsBase", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "differentialDriveKinematicsBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematicsBase"}, {"name": "start", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the given\nchange in wheel positions. This method is often used for odometry --\ndetermining the robot's position on the field using changes in the distance\ndriven by each wheel on the robot.\n\n:param start: The starting distances driven by the wheels.\n:param end: The ending distances driven by the wheels.\n\n:returns: The resulting Twist2d in the robot's movement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematicsBase", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveWheelSpeeds", "args": [{"name": "differentialDriveKinematicsBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematicsBase"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\n:param chassisSpeeds: The desired chassis speed.\n\n:returns: The wheel speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematicsBase", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.DifferentialDriveKinematicsBase", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematicsBase"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.DifferentialDriveWheelPositions", "args": [{"name": "differentialDriveKinematicsBase", "type": "wpimath.kinematics.DifferentialDriveKinematicsBase"}, {"name": "start", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "t", "type": "float"}], "tooltip": "Performs interpolation between two values.\n\n:param start: The value to start at.\n:param end: The value to end at.\n:param t: How far between the two values to interpolate. This should be\n bounded to [0, 1].\n\n:returns: The interpolated value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematicsBase", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "differentialDriveKinematicsBase", "type": "wpimath.kinematics.DifferentialDriveKinematicsBase"}, {"name": "wheelSpeeds", "type": "wpimath.kinematics.DifferentialDriveWheelSpeeds"}], "tooltip": "Performs forward kinematics to return the resulting chassis speed from the\nwheel speeds. This method is often used for odometry -- determining the\nrobot's position on the field using data from the real-world speed of each\nwheel on the robot.\n\n:param wheelSpeeds: The speeds of the wheels.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematicsBase", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "differentialDriveKinematicsBase", "type": "wpimath.kinematics.DifferentialDriveKinematicsBase"}, {"name": "start", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the given\nchange in wheel positions. This method is often used for odometry --\ndetermining the robot's position on the field using changes in the distance\ndriven by each wheel on the robot.\n\n:param start: The starting distances driven by the wheels.\n:param end: The ending distances driven by the wheels.\n\n:returns: The resulting Twist2d in the robot's movement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematicsBase", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "args": [{"name": "differentialDriveKinematicsBase", "type": "wpimath.kinematics.DifferentialDriveKinematicsBase"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\n:param chassisSpeeds: The desired chassis speed.\n\n:returns: The wheel speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveKinematicsBase", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometry.ts b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometry.ts
index 48db019d..d05b62bd 100644
--- a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometry.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometry.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveOdometry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveOdometry", "args": [{"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a DifferentialDriveOdometry object.\n\nIF leftDistance and rightDistance are unspecified,\nYou NEED to reset your encoders (to zero).\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometryBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nIF leftDistance and rightDistance are unspecified,\nYou NEED to reset your encoders (to zero).\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param pose: The position on the field that your robot is at.\n:param gyroAngle: The angle reported by the gyroscope.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometryBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometryBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "differentialDriveOdometry", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Updates the robot position on the field using distance measurements from\nencoders. This method is more numerically accurate than using velocities to\nintegrate the pose and is also advantageous for teams that are using lower\nCPR encoders.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveOdometry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.DifferentialDriveOdometry", "args": [{"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a DifferentialDriveOdometry object.\n\nIF leftDistance and rightDistance are unspecified,\nYou NEED to reset your encoders (to zero).\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics.DifferentialDriveOdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics.DifferentialDriveOdometryBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry", "type": "wpimath.kinematics.DifferentialDriveOdometry"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nIF leftDistance and rightDistance are unspecified,\nYou NEED to reset your encoders (to zero).\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param pose: The position on the field that your robot is at.\n:param gyroAngle: The angle reported by the gyroscope.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics.DifferentialDriveOdometryBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics.DifferentialDriveOdometryBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "differentialDriveOdometry", "type": "wpimath.kinematics.DifferentialDriveOdometry"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Updates the robot position on the field using distance measurements from\nencoders. This method is more numerically accurate than using velocities to\nintegrate the pose and is also advantageous for teams that are using lower\nCPR encoders.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometry3d.ts b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometry3d.ts
index d21c8ecd..4991a7cc 100644
--- a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometry3d.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometry3d.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3d", "args": [{"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs a DifferentialDriveOdometry3d object.\n\nIF leftDistance and rightDistance are unspecified,\nYou NEED to reset your encoders (to zero).\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3d", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3d"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nIF leftDistance and rightDistance are unspecified,\nYou NEED to reset your encoders (to zero).\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param pose: The position on the field that your robot is at.\n:param gyroAngle: The angle reported by the gyroscope.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3d", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "differentialDriveOdometry3d", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3d"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Updates the robot position on the field using distance measurements from\nencoders. This method is more numerically accurate than using velocities to\nintegrate the pose and is also advantageous for teams that are using lower\nCPR encoders.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3d", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.DifferentialDriveOdometry3d", "args": [{"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs a DifferentialDriveOdometry3d object.\n\nIF leftDistance and rightDistance are unspecified,\nYou NEED to reset your encoders (to zero).\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3d", "type": "wpimath.kinematics.DifferentialDriveOdometry3d"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nIF leftDistance and rightDistance are unspecified,\nYou NEED to reset your encoders (to zero).\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param pose: The position on the field that your robot is at.\n:param gyroAngle: The angle reported by the gyroscope.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3d", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "differentialDriveOdometry3d", "type": "wpimath.kinematics.DifferentialDriveOdometry3d"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "leftDistance", "type": "wpimath.units.meters"}, {"name": "rightDistance", "type": "wpimath.units.meters"}], "tooltip": "Updates the robot position on the field using distance measurements from\nencoders. This method is more numerically accurate than using velocities to\nintegrate the pose and is also advantageous for teams that are using lower\nCPR encoders.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param leftDistance: The distance traveled by the left encoder.\n:param rightDistance: The distance traveled by the right encoder.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3d", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometry3dBase.ts b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometry3dBase.ts
index 684091a8..5bf095f9 100644
--- a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometry3dBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometry3dBase.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs an Odometry3d object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.DifferentialDriveKinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs an Odometry3d object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "differentialDriveOdometry3dBase", "type": "wpimath.kinematics.DifferentialDriveOdometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometryBase.ts b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometryBase.ts
index efb51195..a8206185 100644
--- a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometryBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveOdometryBase.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveOdometryBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs an Odometry object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometryBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometryBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometryBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics._kinematics.DifferentialDriveOdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.DifferentialDriveOdometryBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.DifferentialDriveKinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs an Odometry object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics.DifferentialDriveOdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics.DifferentialDriveOdometryBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics.DifferentialDriveOdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics.DifferentialDriveOdometryBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics.DifferentialDriveOdometryBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "differentialDriveOdometryBase", "type": "wpimath.kinematics.DifferentialDriveOdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveOdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveWheelPositions.ts b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveWheelPositions.ts
index b353e4da..70e2e870 100644
--- a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveWheelPositions.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveWheelPositions.ts
@@ -19,8 +19,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.DifferentialDriveWheelPositions", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "differentialDriveWheelPositions", "selfType": "wpimath.kinematics.DifferentialDriveWheelPositions"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelPositions", "VAR": "left"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.DifferentialDriveWheelPositions", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "differentialDriveWheelPositions", "selfType": "wpimath.kinematics.DifferentialDriveWheelPositions"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelPositions", "VAR": "right"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.DifferentialDriveWheelPositions", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "differentialDriveWheelPositions", "selfType": "wpimath.kinematics.DifferentialDriveWheelPositions"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelPositions", "VAR": "right"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelPositions"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions", "args": [{"name": "differentialDriveWheelPositions", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "endValue", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelPositions"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelPositions", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.DifferentialDriveWheelPositions", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelPositions"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.DifferentialDriveWheelPositions", "args": [{"name": "differentialDriveWheelPositions", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "endValue", "type": "wpimath.kinematics.DifferentialDriveWheelPositions"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelPositions", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveWheelSpeeds.ts b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveWheelSpeeds.ts
index 5db05668..139b7e42 100644
--- a/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveWheelSpeeds.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.DifferentialDriveWheelSpeeds.ts
@@ -25,9 +25,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "varType": "wpimath.units.feet_per_second", "importModule": "", "selfLabel": "differentialDriveWheelSpeeds", "selfType": "wpimath.kinematics.DifferentialDriveWheelSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "VAR": "left_fps"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "varType": "wpimath.units.feet_per_second", "importModule": "", "selfLabel": "differentialDriveWheelSpeeds", "selfType": "wpimath.kinematics.DifferentialDriveWheelSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "VAR": "right_fps"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "varType": "wpimath.units.feet_per_second", "importModule": "", "selfLabel": "differentialDriveWheelSpeeds", "selfType": "wpimath.kinematics.DifferentialDriveWheelSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "VAR": "right_fps"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveWheelSpeeds", "args": [{"name": "left", "type": "wpimath.units.meters_per_second"}, {"name": "right", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelSpeeds"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveWheelSpeeds", "type": "wpimath.kinematics._kinematics.DifferentialDriveWheelSpeeds"}, {"name": "attainableMaxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Renormalizes the wheel speeds if either side is above the specified\nmaximum.\n\nSometimes, after inverse kinematics, the requested speed from one or more\nwheels may be above the max attainable speed for the driving motor on that\nwheel. To fix this issue, one can reduce all the wheel speeds to make sure\nthat all requested module speeds are at-or-below the absolute threshold,\nwhile maintaining the ratio of speeds between wheels.\n\n:param attainableMaxSpeed: The absolute max speed that a wheel can reach.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "FUNC": "desaturate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics._kinematics.DifferentialDriveWheelSpeeds", "args": [{"name": "left", "type": "wpimath.units.feet_per_second"}, {"name": "right", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "FUNC": "fromFeet"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "args": [{"name": "left", "type": "wpimath.units.meters_per_second"}, {"name": "right", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelSpeeds"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "differentialDriveWheelSpeeds", "type": "wpimath.kinematics.DifferentialDriveWheelSpeeds"}, {"name": "attainableMaxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Renormalizes the wheel speeds if either side is above the specified\nmaximum.\n\nSometimes, after inverse kinematics, the requested speed from one or more\nwheels may be above the max attainable speed for the driving motor on that\nwheel. To fix this issue, one can reduce all the wheel speeds to make sure\nthat all requested module speeds are at-or-below the absolute threshold,\nwhile maintaining the ratio of speeds between wheels.\n\n:param attainableMaxSpeed: The absolute max speed that a wheel can reach.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "FUNC": "desaturate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "args": [{"name": "left", "type": "wpimath.units.feet_per_second"}, {"name": "right", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.DifferentialDriveWheelSpeeds", "FUNC": "fromFeet"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveKinematics.ts b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveKinematics.ts
index 9b82168b..5531d05c 100644
--- a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveKinematics.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveKinematics.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.MecanumDriveKinematics", "args": [{"name": "frontLeftWheel", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "frontRightWheel", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "rearLeftWheel", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "rearRightWheel", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Constructs a mecanum drive kinematics object.\n\n:param frontLeftWheel: The location of the front-left wheel relative to the\n physical center of the robot.\n:param frontRightWheel: The location of the front-right wheel relative to\n the physical center of the robot.\n:param rearLeftWheel: The location of the rear-left wheel relative to the\n physical center of the robot.\n:param rearRightWheel: The location of the rear-right wheel relative to the\n physical center of the robot.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}], "tooltip": "Returns the front-left wheel translation.\n\n:returns: The front-left wheel translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "getFrontLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}], "tooltip": "Returns the front-right wheel translation.\n\n:returns: The front-right wheel translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "getFrontRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}], "tooltip": "Returns the rear-left wheel translation.\n\n:returns: The rear-left wheel translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "getRearLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Translation2d", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}], "tooltip": "Returns the rear-right wheel translation.\n\n:returns: The rear-right wheel translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "getRearRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "start", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "wheelSpeeds", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelSpeeds"}], "tooltip": "Performs forward kinematics to return the resulting chassis state from the\ngiven wheel speeds. This method is often used for odometry -- determining\nthe robot's position on the field using data from the real-world speed of\neach wheel on the robot.\n\n:param wheelSpeeds: The current mecanum drive wheel speeds.\n\n:returns: The resulting chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "start", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "wheelDeltas", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the\ngiven wheel position deltas. This method is often used for odometry --\ndetermining the robot's position on the field using data from the\ndistance driven by each wheel on the robot.\n\n:param wheelDeltas: The change in distance driven by each wheel.\n\n:returns: The resulting chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.MecanumDriveWheelSpeeds", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "centerOfRotation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\nThis function also supports variable centers of rotation. During normal\noperations, the center of rotation is usually the same as the physical\ncenter of the robot; therefore, the argument is defaulted to that use case.\nHowever, if you wish to change the center of rotation for evasive\nmaneuvers, vision alignment, or for any other use case, you can do so.\n\n:param chassisSpeeds: The desired chassis speed.\n:param centerOfRotation: The center of rotation. For example, if you set the\n center of rotation at one corner of the robot and\n provide a chassis speed that only has a dtheta\n component, the robot will rotate around that\n corner.\n\n:returns: The wheel speeds. Use caution because they are not normalized.\n Sometimes, a user input may cause one of the wheel speeds to go\n above the attainable max velocity. Use the\n :meth:`MecanumDriveWheelSpeeds.normalize` method to rectify\n this issue. In addition, you can use Python unpacking syntax\n to directly assign the wheel speeds to variables::\n\n fl, fr, bl, br = kinematics.toWheelSpeeds(chassisSpeeds)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.MecanumDriveWheelSpeeds", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\nThis function also supports variable centers of rotation. During normal\noperations, the center of rotation is usually the same as the physical\ncenter of the robot; therefore, the argument is defaulted to that use case.\nHowever, if you wish to change the center of rotation for evasive\nmaneuvers, vision alignment, or for any other use case, you can do so.\n\n:param chassisSpeeds: The desired chassis speed.\n:param centerOfRotation: The center of rotation. For example, if you set the\n center of rotation at one corner of the robot and\n provide a chassis speed that only has a dtheta\n component, the robot will rotate around that\n corner.\n\n:returns: The wheel speeds. Use caution because they are not normalized.\n Sometimes, a user input may cause one of the wheel speeds to go\n above the attainable max velocity. Use the\n :meth:`MecanumDriveWheelSpeeds.normalize` method to rectify\n this issue. In addition, you can use Python unpacking syntax\n to directly assign the wheel speeds to variables::\n\n fl, fr, bl, br = kinematics.toWheelSpeeds(chassisSpeeds)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.MecanumDriveKinematics", "args": [{"name": "frontLeftWheel", "type": "wpimath.geometry.Translation2d"}, {"name": "frontRightWheel", "type": "wpimath.geometry.Translation2d"}, {"name": "rearLeftWheel", "type": "wpimath.geometry.Translation2d"}, {"name": "rearRightWheel", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Constructs a mecanum drive kinematics object.\n\n:param frontLeftWheel: The location of the front-left wheel relative to the\n physical center of the robot.\n:param frontRightWheel: The location of the front-right wheel relative to\n the physical center of the robot.\n:param rearLeftWheel: The location of the rear-left wheel relative to the\n physical center of the robot.\n:param rearRightWheel: The location of the rear-right wheel relative to the\n physical center of the robot.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}], "tooltip": "Returns the front-left wheel translation.\n\n:returns: The front-left wheel translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "getFrontLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}], "tooltip": "Returns the front-right wheel translation.\n\n:returns: The front-right wheel translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "getFrontRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}], "tooltip": "Returns the rear-left wheel translation.\n\n:returns: The rear-left wheel translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "getRearLeft"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Translation2d", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}], "tooltip": "Returns the rear-right wheel translation.\n\n:returns: The rear-right wheel translation.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "getRearRight"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.MecanumDriveWheelPositions", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "start", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "wheelSpeeds", "type": "wpimath.kinematics.MecanumDriveWheelSpeeds"}], "tooltip": "Performs forward kinematics to return the resulting chassis state from the\ngiven wheel speeds. This method is often used for odometry -- determining\nthe robot's position on the field using data from the real-world speed of\neach wheel on the robot.\n\n:param wheelSpeeds: The current mecanum drive wheel speeds.\n\n:returns: The resulting chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "start", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "wheelDeltas", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the\ngiven wheel position deltas. This method is often used for odometry --\ndetermining the robot's position on the field using data from the\ndistance driven by each wheel on the robot.\n\n:param wheelDeltas: The change in distance driven by each wheel.\n\n:returns: The resulting chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.MecanumDriveWheelSpeeds", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "centerOfRotation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\nThis function also supports variable centers of rotation. During normal\noperations, the center of rotation is usually the same as the physical\ncenter of the robot; therefore, the argument is defaulted to that use case.\nHowever, if you wish to change the center of rotation for evasive\nmaneuvers, vision alignment, or for any other use case, you can do so.\n\n:param chassisSpeeds: The desired chassis speed.\n:param centerOfRotation: The center of rotation. For example, if you set the\n center of rotation at one corner of the robot and\n provide a chassis speed that only has a dtheta\n component, the robot will rotate around that\n corner.\n\n:returns: The wheel speeds. Use caution because they are not normalized.\n Sometimes, a user input may cause one of the wheel speeds to go\n above the attainable max velocity. Use the\n :meth:`MecanumDriveWheelSpeeds.normalize` method to rectify\n this issue. In addition, you can use Python unpacking syntax\n to directly assign the wheel speeds to variables::\n\n fl, fr, bl, br = kinematics.toWheelSpeeds(chassisSpeeds)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.MecanumDriveWheelSpeeds", "args": [{"name": "mecanumDriveKinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\nThis function also supports variable centers of rotation. During normal\noperations, the center of rotation is usually the same as the physical\ncenter of the robot; therefore, the argument is defaulted to that use case.\nHowever, if you wish to change the center of rotation for evasive\nmaneuvers, vision alignment, or for any other use case, you can do so.\n\n:param chassisSpeeds: The desired chassis speed.\n:param centerOfRotation: The center of rotation. For example, if you set the\n center of rotation at one corner of the robot and\n provide a chassis speed that only has a dtheta\n component, the robot will rotate around that\n corner.\n\n:returns: The wheel speeds. Use caution because they are not normalized.\n Sometimes, a user input may cause one of the wheel speeds to go\n above the attainable max velocity. Use the\n :meth:`MecanumDriveWheelSpeeds.normalize` method to rectify\n this issue. In addition, you can use Python unpacking syntax\n to directly assign the wheel speeds to variables::\n\n fl, fr, bl, br = kinematics.toWheelSpeeds(chassisSpeeds)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveKinematicsBase.ts b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveKinematicsBase.ts
index 4927eb0a..5c4130f5 100644
--- a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveKinematicsBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveKinematicsBase.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.MecanumDriveKinematicsBase", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematicsBase"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions", "args": [{"name": "mecanumDriveKinematicsBase", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematicsBase"}, {"name": "start", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "t", "type": "float"}], "tooltip": "Performs interpolation between two values.\n\n:param start: The value to start at.\n:param end: The value to end at.\n:param t: How far between the two values to interpolate. This should be\n bounded to [0, 1].\n\n:returns: The interpolated value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematicsBase", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "mecanumDriveKinematicsBase", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematicsBase"}, {"name": "wheelSpeeds", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelSpeeds"}], "tooltip": "Performs forward kinematics to return the resulting chassis speed from the\nwheel speeds. This method is often used for odometry -- determining the\nrobot's position on the field using data from the real-world speed of each\nwheel on the robot.\n\n:param wheelSpeeds: The speeds of the wheels.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematicsBase", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "mecanumDriveKinematicsBase", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematicsBase"}, {"name": "start", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the given\nchange in wheel positions. This method is often used for odometry --\ndetermining the robot's position on the field using changes in the distance\ndriven by each wheel on the robot.\n\n:param start: The starting distances driven by the wheels.\n:param end: The ending distances driven by the wheels.\n\n:returns: The resulting Twist2d in the robot's movement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematicsBase", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.MecanumDriveWheelSpeeds", "args": [{"name": "mecanumDriveKinematicsBase", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematicsBase"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\n:param chassisSpeeds: The desired chassis speed.\n\n:returns: The wheel speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematicsBase", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.MecanumDriveKinematicsBase", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematicsBase"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.MecanumDriveWheelPositions", "args": [{"name": "mecanumDriveKinematicsBase", "type": "wpimath.kinematics.MecanumDriveKinematicsBase"}, {"name": "start", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "t", "type": "float"}], "tooltip": "Performs interpolation between two values.\n\n:param start: The value to start at.\n:param end: The value to end at.\n:param t: How far between the two values to interpolate. This should be\n bounded to [0, 1].\n\n:returns: The interpolated value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematicsBase", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "mecanumDriveKinematicsBase", "type": "wpimath.kinematics.MecanumDriveKinematicsBase"}, {"name": "wheelSpeeds", "type": "wpimath.kinematics.MecanumDriveWheelSpeeds"}], "tooltip": "Performs forward kinematics to return the resulting chassis speed from the\nwheel speeds. This method is often used for odometry -- determining the\nrobot's position on the field using data from the real-world speed of each\nwheel on the robot.\n\n:param wheelSpeeds: The speeds of the wheels.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematicsBase", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "mecanumDriveKinematicsBase", "type": "wpimath.kinematics.MecanumDriveKinematicsBase"}, {"name": "start", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "end", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the given\nchange in wheel positions. This method is often used for odometry --\ndetermining the robot's position on the field using changes in the distance\ndriven by each wheel on the robot.\n\n:param start: The starting distances driven by the wheels.\n:param end: The ending distances driven by the wheels.\n\n:returns: The resulting Twist2d in the robot's movement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematicsBase", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.MecanumDriveWheelSpeeds", "args": [{"name": "mecanumDriveKinematicsBase", "type": "wpimath.kinematics.MecanumDriveKinematicsBase"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\n:param chassisSpeeds: The desired chassis speed.\n\n:returns: The wheel speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveKinematicsBase", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometry.ts b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometry.ts
index 700dedab..417e9374 100644
--- a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometry.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometry.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveOdometry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.MecanumDriveOdometry", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a MecanumDriveOdometry object.\n\n:param kinematics: The mecanum drive kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveOdometry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.MecanumDriveOdometry", "args": [{"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a MecanumDriveOdometry object.\n\n:param kinematics: The mecanum drive kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometry3d.ts b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometry3d.ts
index 39d98da3..92b1a595 100644
--- a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometry3d.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometry3d.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveOdometry3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.MecanumDriveOdometry3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs a MecanumDriveOdometry3d object.\n\n:param kinematics: The mecanum drive kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveOdometry3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.MecanumDriveOdometry3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs a MecanumDriveOdometry3d object.\n\n:param kinematics: The mecanum drive kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometry3dBase.ts b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometry3dBase.ts
index b032f6d7..71ffb602 100644
--- a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometry3dBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometry3dBase.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs an Odometry3d object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.MecanumDriveOdometry3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs an Odometry3d object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "mecanumDriveOdometry3dBase", "type": "wpimath.kinematics.MecanumDriveOdometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometryBase.ts b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometryBase.ts
index d9815f5c..49b0b05d 100644
--- a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometryBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveOdometryBase.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs an Odometry object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics._kinematics.MecanumDriveOdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.MecanumDriveOdometryBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs an Odometry object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "mecanumDriveOdometryBase", "type": "wpimath.kinematics.MecanumDriveOdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveOdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveOdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveWheelPositions.ts b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveWheelPositions.ts
index 3c5ffcd0..6def3c9d 100644
--- a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveWheelPositions.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveWheelPositions.ts
@@ -23,8 +23,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.MecanumDriveWheelPositions", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "mecanumDriveWheelPositions", "selfType": "wpimath.kinematics.MecanumDriveWheelPositions"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelPositions", "VAR": "rearLeft"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.MecanumDriveWheelPositions", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "mecanumDriveWheelPositions", "selfType": "wpimath.kinematics.MecanumDriveWheelPositions"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelPositions", "VAR": "rearRight"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.MecanumDriveWheelPositions", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "mecanumDriveWheelPositions", "selfType": "wpimath.kinematics.MecanumDriveWheelPositions"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelPositions", "VAR": "rearRight"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelPositions"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions", "args": [{"name": "mecanumDriveWheelPositions", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "endValue", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelPositions"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelPositions", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.MecanumDriveWheelPositions", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelPositions"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.MecanumDriveWheelPositions", "args": [{"name": "mecanumDriveWheelPositions", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "endValue", "type": "wpimath.kinematics.MecanumDriveWheelPositions"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelPositions", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelPositions"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveWheelSpeeds.ts b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveWheelSpeeds.ts
index b044e4ff..4ba708b9 100644
--- a/src/blocks/generated/class_wpimath.kinematics.MecanumDriveWheelSpeeds.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.MecanumDriveWheelSpeeds.ts
@@ -33,9 +33,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.MecanumDriveWheelSpeeds", "varType": "wpimath.units.feet_per_second", "importModule": "", "selfLabel": "mecanumDriveWheelSpeeds", "selfType": "wpimath.kinematics.MecanumDriveWheelSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelSpeeds", "VAR": "rearLeft_fps"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.MecanumDriveWheelSpeeds", "varType": "wpimath.units.feet_per_second", "importModule": "", "selfLabel": "mecanumDriveWheelSpeeds", "selfType": "wpimath.kinematics.MecanumDriveWheelSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelSpeeds", "VAR": "rearRight_fps"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.MecanumDriveWheelSpeeds", "varType": "wpimath.units.feet_per_second", "importModule": "", "selfLabel": "mecanumDriveWheelSpeeds", "selfType": "wpimath.kinematics.MecanumDriveWheelSpeeds"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelSpeeds", "VAR": "rearRight_fps"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.MecanumDriveWheelSpeeds", "args": [{"name": "frontLeft", "type": "wpimath.units.meters_per_second"}, {"name": "frontRight", "type": "wpimath.units.meters_per_second"}, {"name": "rearLeft", "type": "wpimath.units.meters_per_second"}, {"name": "rearRight", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelSpeeds"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveWheelSpeeds", "type": "wpimath.kinematics._kinematics.MecanumDriveWheelSpeeds"}, {"name": "attainableMaxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum.\n\nSometimes, after inverse kinematics, the requested speed from one or\nmore wheels may be above the max attainable speed for the driving motor on\nthat wheel. To fix this issue, one can reduce all the wheel speeds to make\nsure that all requested module speeds are at-or-below the absolute\nthreshold, while maintaining the ratio of speeds between wheels.\n\n:param attainableMaxSpeed: The absolute max speed that a wheel can reach.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelSpeeds", "FUNC": "desaturate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics._kinematics.MecanumDriveWheelSpeeds", "args": [{"name": "frontLeft", "type": "wpimath.units.feet_per_second"}, {"name": "frontRight", "type": "wpimath.units.feet_per_second"}, {"name": "rearLeft", "type": "wpimath.units.feet_per_second"}, {"name": "rearRight", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelSpeeds", "FUNC": "fromFeet"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.MecanumDriveWheelSpeeds", "args": [{"name": "frontLeft", "type": "wpimath.units.meters_per_second"}, {"name": "frontRight", "type": "wpimath.units.meters_per_second"}, {"name": "rearLeft", "type": "wpimath.units.meters_per_second"}, {"name": "rearRight", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelSpeeds"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "mecanumDriveWheelSpeeds", "type": "wpimath.kinematics.MecanumDriveWheelSpeeds"}, {"name": "attainableMaxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum.\n\nSometimes, after inverse kinematics, the requested speed from one or\nmore wheels may be above the max attainable speed for the driving motor on\nthat wheel. To fix this issue, one can reduce all the wheel speeds to make\nsure that all requested module speeds are at-or-below the absolute\nthreshold, while maintaining the ratio of speeds between wheels.\n\n:param attainableMaxSpeed: The absolute max speed that a wheel can reach.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelSpeeds", "FUNC": "desaturate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveWheelSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.kinematics.MecanumDriveWheelSpeeds", "args": [{"name": "frontLeft", "type": "wpimath.units.feet_per_second"}, {"name": "frontRight", "type": "wpimath.units.feet_per_second"}, {"name": "rearLeft", "type": "wpimath.units.feet_per_second"}, {"name": "rearRight", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.MecanumDriveWheelSpeeds", "FUNC": "fromFeet"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Kinematics.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Kinematics.ts
index 5b69893c..4ff26e6b 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Kinematics.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Kinematics.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics", "args": [{"name": "arg0", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "arg1", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "attainableMaxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param attainableMaxSpeed: The absolute max speed that a module can reach.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "desiredChassisSpeed", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "attainableMaxModuleSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotTranslationSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotRotationSpeed", "type": "wpimath.units.radians_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum, as well as getting rid of joystick saturation at edges\nof joystick.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param desiredChassisSpeed: The desired speed of the robot\n:param attainableMaxModuleSpeed: The absolute max speed a module can reach\n:param attainableMaxRobotTranslationSpeed: The absolute max speed the robot\n can reach while translating\n:param attainableMaxRobotRotationSpeed: The absolute max speed the robot can\n reach while rotating", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d]", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "getModules"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "moduleHeadings", "type": "Tuple[wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d]"}], "tooltip": "Reset the internal swerve module headings.\n\n:param moduleHeadings: The swerve module headings. The order of the module\n headings should be same as passed into the constructor of this class.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "resetHeadings"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d]"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis state from the\ngiven module states. This method is often used for odometry -- determining\nthe robot's position on the field using data from the real-world speed and\nangle of each module on the robot.\n\n:param moduleStates: The state of the modules as an wpi::array of type\n SwerveModuleState, NumModules long as measured from respective encoders\n and gyros. The order of the swerve module states should be same as passed\n into the constructor of this class.\n\n:returns: The resulting chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "centerOfRotation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Performs inverse kinematics to return the module states from a desired\nchassis velocity. This method is often used to convert joystick values into\nmodule speeds and angles.\n\nThis function also supports variable centers of rotation. During normal\noperations, the center of rotation is usually the same as the physical\ncenter of the robot; therefore, the argument is defaulted to that use case.\nHowever, if you wish to change the center of rotation for evasive\nmaneuvers, vision alignment, or for any other use case, you can do so.\n\n:param chassisSpeeds: The desired chassis speed.\n:param centerOfRotation: The center of rotation. For example, if you set the\n center of rotation at one corner of the robot and provide a chassis speed\n that only has a dtheta component, the robot will rotate around that corner.\n\n:returns: An array containing the module states. Use caution because these\n module states are not normalized. Sometimes, a user input may cause one of\n the module speeds to go above the attainable max velocity. Use the\n :meth:`desaturateWheelSpeeds` function to rectify this issue.\n In addition, you can use Python unpacking syntax\n to directly assign the module states to variables::\n\n fl, fr, bl, br = kinematics.toSwerveModuleStates(chassisSpeeds)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "toSwerveModuleStates"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "moduleDeltas", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the\ngiven module position deltas. This method is often used for odometry --\ndetermining the robot's position on the field using data from the\nreal-world position delta and angle of each module on the robot.\n\n:param moduleDeltas: The latest change in position of the modules (as a\n SwerveModulePosition type) as measured from respective encoders and gyros.\n The order of the swerve module states should be same as passed into the\n constructor of this class.\n\n:returns: The resulting Twist2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive2Kinematics", "args": [{"name": "arg0", "type": "wpimath.geometry.Translation2d"}, {"name": "arg1", "type": "wpimath.geometry.Translation2d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "attainableMaxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param attainableMaxSpeed: The absolute max speed that a module can reach.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "desiredChassisSpeed", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "attainableMaxModuleSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotTranslationSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotRotationSpeed", "type": "wpimath.units.radians_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum, as well as getting rid of joystick saturation at edges\nof joystick.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param desiredChassisSpeed: The desired speed of the robot\n:param attainableMaxModuleSpeed: The absolute max speed a module can reach\n:param attainableMaxRobotTranslationSpeed: The absolute max speed the robot\n can reach while translating\n:param attainableMaxRobotRotationSpeed: The absolute max speed the robot can\n reach while rotating", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d]", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "getModules"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "moduleHeadings", "type": "Tuple[wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d]"}], "tooltip": "Reset the internal swerve module headings.\n\n:param moduleHeadings: The swerve module headings. The order of the module\n headings should be same as passed into the constructor of this class.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "resetHeadings"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis state from the\ngiven module states. This method is often used for odometry -- determining\nthe robot's position on the field using data from the real-world speed and\nangle of each module on the robot.\n\n:param moduleStates: The state of the modules as an wpi::array of type\n SwerveModuleState, NumModules long as measured from respective encoders\n and gyros. The order of the swerve module states should be same as passed\n into the constructor of this class.\n\n:returns: The resulting chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "centerOfRotation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Performs inverse kinematics to return the module states from a desired\nchassis velocity. This method is often used to convert joystick values into\nmodule speeds and angles.\n\nThis function also supports variable centers of rotation. During normal\noperations, the center of rotation is usually the same as the physical\ncenter of the robot; therefore, the argument is defaulted to that use case.\nHowever, if you wish to change the center of rotation for evasive\nmaneuvers, vision alignment, or for any other use case, you can do so.\n\n:param chassisSpeeds: The desired chassis speed.\n:param centerOfRotation: The center of rotation. For example, if you set the\n center of rotation at one corner of the robot and provide a chassis speed\n that only has a dtheta component, the robot will rotate around that corner.\n\n:returns: An array containing the module states. Use caution because these\n module states are not normalized. Sometimes, a user input may cause one of\n the module speeds to go above the attainable max velocity. Use the\n :meth:`desaturateWheelSpeeds` function to rectify this issue.\n In addition, you can use Python unpacking syntax\n to directly assign the module states to variables::\n\n fl, fr, bl, br = kinematics.toSwerveModuleStates(chassisSpeeds)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "toSwerveModuleStates"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "moduleDeltas", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the\ngiven module position deltas. This method is often used for odometry --\ndetermining the robot's position on the field using data from the\nreal-world position delta and angle of each module on the robot.\n\n:param moduleDeltas: The latest change in position of the modules (as a\n SwerveModulePosition type) as measured from respective encoders and gyros.\n The order of the swerve module states should be same as passed into the\n constructor of this class.\n\n:returns: The resulting Twist2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive2Kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Kinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2KinematicsBase.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2KinematicsBase.ts
index 380c5047..05df8930 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2KinematicsBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2KinematicsBase.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive2KinematicsBase", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2KinematicsBase"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive2KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "Performs interpolation between two values.\n\n:param start: The value to start at.\n:param end: The value to end at.\n:param t: How far between the two values to interpolate. This should be\n bounded to [0, 1].\n\n:returns: The interpolated value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2KinematicsBase", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive2KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2KinematicsBase"}, {"name": "wheelSpeeds", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis speed from the\nwheel speeds. This method is often used for odometry -- determining the\nrobot's position on the field using data from the real-world speed of each\nwheel on the robot.\n\n:param wheelSpeeds: The speeds of the wheels.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2KinematicsBase", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "swerveDrive2KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the given\nchange in wheel positions. This method is often used for odometry --\ndetermining the robot's position on the field using changes in the distance\ndriven by each wheel on the robot.\n\n:param start: The starting distances driven by the wheels.\n:param end: The ending distances driven by the wheels.\n\n:returns: The resulting Twist2d in the robot's movement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2KinematicsBase", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive2KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2KinematicsBase"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\n:param chassisSpeeds: The desired chassis speed.\n\n:returns: The wheel speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2KinematicsBase", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive2KinematicsBase", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2KinematicsBase"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive2KinematicsBase", "type": "wpimath.kinematics.SwerveDrive2KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "Performs interpolation between two values.\n\n:param start: The value to start at.\n:param end: The value to end at.\n:param t: How far between the two values to interpolate. This should be\n bounded to [0, 1].\n\n:returns: The interpolated value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2KinematicsBase", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive2KinematicsBase", "type": "wpimath.kinematics.SwerveDrive2KinematicsBase"}, {"name": "wheelSpeeds", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis speed from the\nwheel speeds. This method is often used for odometry -- determining the\nrobot's position on the field using data from the real-world speed of each\nwheel on the robot.\n\n:param wheelSpeeds: The speeds of the wheels.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2KinematicsBase", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "swerveDrive2KinematicsBase", "type": "wpimath.kinematics.SwerveDrive2KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the given\nchange in wheel positions. This method is often used for odometry --\ndetermining the robot's position on the field using changes in the distance\ndriven by each wheel on the robot.\n\n:param start: The starting distances driven by the wheels.\n:param end: The ending distances driven by the wheels.\n\n:returns: The resulting Twist2d in the robot's movement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2KinematicsBase", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive2KinematicsBase", "type": "wpimath.kinematics.SwerveDrive2KinematicsBase"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\n:param chassisSpeeds: The desired chassis speed.\n\n:returns: The wheel speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2KinematicsBase", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Odometry.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Odometry.ts
index bd4b9203..a4376bd5 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Odometry.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Odometry.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2Odometry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive2Odometry", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a SwerveDriveOdometry object.\n\n:param kinematics: The swerve drive kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param modulePositions: The wheel positions reported by each module.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2Odometry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive2Odometry", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a SwerveDriveOdometry object.\n\n:param kinematics: The swerve drive kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param modulePositions: The wheel positions reported by each module.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Odometry3d.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Odometry3d.ts
index b72e93b8..4e1a00ad 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Odometry3d.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Odometry3d.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive2Odometry3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Odometry3dBase.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Odometry3dBase.ts
index c83631a3..bae39f08 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Odometry3dBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2Odometry3dBase.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs an Odometry3d object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs an Odometry3d object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive2Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive2Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2OdometryBase.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2OdometryBase.ts
index 86d9a97a..0c0bf37b 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2OdometryBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive2OdometryBase.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs an Odometry object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive2OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive2OdometryBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs an Odometry object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive2OdometryBase", "type": "wpimath.kinematics.SwerveDrive2OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive2OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Kinematics.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Kinematics.ts
index 2256bd85..fa193edc 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Kinematics.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Kinematics.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics", "args": [{"name": "arg0", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "arg1", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "arg2", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "attainableMaxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param attainableMaxSpeed: The absolute max speed that a module can reach.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "desiredChassisSpeed", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "attainableMaxModuleSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotTranslationSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotRotationSpeed", "type": "wpimath.units.radians_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum, as well as getting rid of joystick saturation at edges\nof joystick.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param desiredChassisSpeed: The desired speed of the robot\n:param attainableMaxModuleSpeed: The absolute max speed a module can reach\n:param attainableMaxRobotTranslationSpeed: The absolute max speed the robot\n can reach while translating\n:param attainableMaxRobotRotationSpeed: The absolute max speed the robot can\n reach while rotating", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d]", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "getModules"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "moduleHeadings", "type": "Tuple[wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d]"}], "tooltip": "Reset the internal swerve module headings.\n\n:param moduleHeadings: The swerve module headings. The order of the module\n headings should be same as passed into the constructor of this class.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "resetHeadings"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d]"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis state from the\ngiven module states. This method is often used for odometry -- determining\nthe robot's position on the field using data from the real-world speed and\nangle of each module on the robot.\n\n:param moduleStates: The state of the modules as an wpi::array of type\n SwerveModuleState, NumModules long as measured from respective encoders\n and gyros. The order of the swerve module states should be same as passed\n into the constructor of this class.\n\n:returns: The resulting chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "centerOfRotation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Performs inverse kinematics to return the module states from a desired\nchassis velocity. This method is often used to convert joystick values into\nmodule speeds and angles.\n\nThis function also supports variable centers of rotation. During normal\noperations, the center of rotation is usually the same as the physical\ncenter of the robot; therefore, the argument is defaulted to that use case.\nHowever, if you wish to change the center of rotation for evasive\nmaneuvers, vision alignment, or for any other use case, you can do so.\n\n:param chassisSpeeds: The desired chassis speed.\n:param centerOfRotation: The center of rotation. For example, if you set the\n center of rotation at one corner of the robot and provide a chassis speed\n that only has a dtheta component, the robot will rotate around that corner.\n\n:returns: An array containing the module states. Use caution because these\n module states are not normalized. Sometimes, a user input may cause one of\n the module speeds to go above the attainable max velocity. Use the\n :meth:`desaturateWheelSpeeds` function to rectify this issue.\n In addition, you can use Python unpacking syntax\n to directly assign the module states to variables::\n\n fl, fr, bl, br = kinematics.toSwerveModuleStates(chassisSpeeds)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "toSwerveModuleStates"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "moduleDeltas", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the\ngiven module position deltas. This method is often used for odometry --\ndetermining the robot's position on the field using data from the\nreal-world position delta and angle of each module on the robot.\n\n:param moduleDeltas: The latest change in position of the modules (as a\n SwerveModulePosition type) as measured from respective encoders and gyros.\n The order of the swerve module states should be same as passed into the\n constructor of this class.\n\n:returns: The resulting Twist2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive3Kinematics", "args": [{"name": "arg0", "type": "wpimath.geometry.Translation2d"}, {"name": "arg1", "type": "wpimath.geometry.Translation2d"}, {"name": "arg2", "type": "wpimath.geometry.Translation2d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "attainableMaxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param attainableMaxSpeed: The absolute max speed that a module can reach.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "desiredChassisSpeed", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "attainableMaxModuleSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotTranslationSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotRotationSpeed", "type": "wpimath.units.radians_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum, as well as getting rid of joystick saturation at edges\nof joystick.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param desiredChassisSpeed: The desired speed of the robot\n:param attainableMaxModuleSpeed: The absolute max speed a module can reach\n:param attainableMaxRobotTranslationSpeed: The absolute max speed the robot\n can reach while translating\n:param attainableMaxRobotRotationSpeed: The absolute max speed the robot can\n reach while rotating", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d]", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "getModules"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "moduleHeadings", "type": "Tuple[wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d]"}], "tooltip": "Reset the internal swerve module headings.\n\n:param moduleHeadings: The swerve module headings. The order of the module\n headings should be same as passed into the constructor of this class.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "resetHeadings"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis state from the\ngiven module states. This method is often used for odometry -- determining\nthe robot's position on the field using data from the real-world speed and\nangle of each module on the robot.\n\n:param moduleStates: The state of the modules as an wpi::array of type\n SwerveModuleState, NumModules long as measured from respective encoders\n and gyros. The order of the swerve module states should be same as passed\n into the constructor of this class.\n\n:returns: The resulting chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "centerOfRotation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Performs inverse kinematics to return the module states from a desired\nchassis velocity. This method is often used to convert joystick values into\nmodule speeds and angles.\n\nThis function also supports variable centers of rotation. During normal\noperations, the center of rotation is usually the same as the physical\ncenter of the robot; therefore, the argument is defaulted to that use case.\nHowever, if you wish to change the center of rotation for evasive\nmaneuvers, vision alignment, or for any other use case, you can do so.\n\n:param chassisSpeeds: The desired chassis speed.\n:param centerOfRotation: The center of rotation. For example, if you set the\n center of rotation at one corner of the robot and provide a chassis speed\n that only has a dtheta component, the robot will rotate around that corner.\n\n:returns: An array containing the module states. Use caution because these\n module states are not normalized. Sometimes, a user input may cause one of\n the module speeds to go above the attainable max velocity. Use the\n :meth:`desaturateWheelSpeeds` function to rectify this issue.\n In addition, you can use Python unpacking syntax\n to directly assign the module states to variables::\n\n fl, fr, bl, br = kinematics.toSwerveModuleStates(chassisSpeeds)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "toSwerveModuleStates"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "moduleDeltas", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the\ngiven module position deltas. This method is often used for odometry --\ndetermining the robot's position on the field using data from the\nreal-world position delta and angle of each module on the robot.\n\n:param moduleDeltas: The latest change in position of the modules (as a\n SwerveModulePosition type) as measured from respective encoders and gyros.\n The order of the swerve module states should be same as passed into the\n constructor of this class.\n\n:returns: The resulting Twist2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive3Kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Kinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3KinematicsBase.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3KinematicsBase.ts
index c8fdc464..e87b464f 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3KinematicsBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3KinematicsBase.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive3KinematicsBase", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3KinematicsBase"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive3KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "Performs interpolation between two values.\n\n:param start: The value to start at.\n:param end: The value to end at.\n:param t: How far between the two values to interpolate. This should be\n bounded to [0, 1].\n\n:returns: The interpolated value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3KinematicsBase", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive3KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3KinematicsBase"}, {"name": "wheelSpeeds", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis speed from the\nwheel speeds. This method is often used for odometry -- determining the\nrobot's position on the field using data from the real-world speed of each\nwheel on the robot.\n\n:param wheelSpeeds: The speeds of the wheels.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3KinematicsBase", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "swerveDrive3KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the given\nchange in wheel positions. This method is often used for odometry --\ndetermining the robot's position on the field using changes in the distance\ndriven by each wheel on the robot.\n\n:param start: The starting distances driven by the wheels.\n:param end: The ending distances driven by the wheels.\n\n:returns: The resulting Twist2d in the robot's movement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3KinematicsBase", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive3KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3KinematicsBase"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\n:param chassisSpeeds: The desired chassis speed.\n\n:returns: The wheel speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3KinematicsBase", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive3KinematicsBase", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3KinematicsBase"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive3KinematicsBase", "type": "wpimath.kinematics.SwerveDrive3KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "Performs interpolation between two values.\n\n:param start: The value to start at.\n:param end: The value to end at.\n:param t: How far between the two values to interpolate. This should be\n bounded to [0, 1].\n\n:returns: The interpolated value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3KinematicsBase", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive3KinematicsBase", "type": "wpimath.kinematics.SwerveDrive3KinematicsBase"}, {"name": "wheelSpeeds", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis speed from the\nwheel speeds. This method is often used for odometry -- determining the\nrobot's position on the field using data from the real-world speed of each\nwheel on the robot.\n\n:param wheelSpeeds: The speeds of the wheels.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3KinematicsBase", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "swerveDrive3KinematicsBase", "type": "wpimath.kinematics.SwerveDrive3KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the given\nchange in wheel positions. This method is often used for odometry --\ndetermining the robot's position on the field using changes in the distance\ndriven by each wheel on the robot.\n\n:param start: The starting distances driven by the wheels.\n:param end: The ending distances driven by the wheels.\n\n:returns: The resulting Twist2d in the robot's movement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3KinematicsBase", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive3KinematicsBase", "type": "wpimath.kinematics.SwerveDrive3KinematicsBase"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\n:param chassisSpeeds: The desired chassis speed.\n\n:returns: The wheel speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3KinematicsBase", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Odometry.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Odometry.ts
index c81a3560..1f2d9586 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Odometry.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Odometry.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3Odometry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive3Odometry", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a SwerveDriveOdometry object.\n\n:param kinematics: The swerve drive kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param modulePositions: The wheel positions reported by each module.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3Odometry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive3Odometry", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a SwerveDriveOdometry object.\n\n:param kinematics: The swerve drive kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param modulePositions: The wheel positions reported by each module.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Odometry3d.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Odometry3d.ts
index c6b810bf..e15e192f 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Odometry3d.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Odometry3d.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive3Odometry3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Odometry3dBase.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Odometry3dBase.ts
index 55abaca5..075c0ec0 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Odometry3dBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3Odometry3dBase.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs an Odometry3d object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs an Odometry3d object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive3Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive3Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3OdometryBase.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3OdometryBase.ts
index 56bd2110..d9b2cb35 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3OdometryBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive3OdometryBase.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs an Odometry object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive3OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive3OdometryBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs an Odometry object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive3OdometryBase", "type": "wpimath.kinematics.SwerveDrive3OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive3OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Kinematics.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Kinematics.ts
index 899e7aab..5e4bc78e 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Kinematics.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Kinematics.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics", "args": [{"name": "arg0", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "arg1", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "arg2", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "arg3", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "attainableMaxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param attainableMaxSpeed: The absolute max speed that a module can reach.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "desiredChassisSpeed", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "attainableMaxModuleSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotTranslationSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotRotationSpeed", "type": "wpimath.units.radians_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum, as well as getting rid of joystick saturation at edges\nof joystick.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param desiredChassisSpeed: The desired speed of the robot\n:param attainableMaxModuleSpeed: The absolute max speed a module can reach\n:param attainableMaxRobotTranslationSpeed: The absolute max speed the robot\n can reach while translating\n:param attainableMaxRobotRotationSpeed: The absolute max speed the robot can\n reach while rotating", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d]", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "getModules"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "moduleHeadings", "type": "Tuple[wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d]"}], "tooltip": "Reset the internal swerve module headings.\n\n:param moduleHeadings: The swerve module headings. The order of the module\n headings should be same as passed into the constructor of this class.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "resetHeadings"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d]"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis state from the\ngiven module states. This method is often used for odometry -- determining\nthe robot's position on the field using data from the real-world speed and\nangle of each module on the robot.\n\n:param moduleStates: The state of the modules as an wpi::array of type\n SwerveModuleState, NumModules long as measured from respective encoders\n and gyros. The order of the swerve module states should be same as passed\n into the constructor of this class.\n\n:returns: The resulting chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "centerOfRotation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Performs inverse kinematics to return the module states from a desired\nchassis velocity. This method is often used to convert joystick values into\nmodule speeds and angles.\n\nThis function also supports variable centers of rotation. During normal\noperations, the center of rotation is usually the same as the physical\ncenter of the robot; therefore, the argument is defaulted to that use case.\nHowever, if you wish to change the center of rotation for evasive\nmaneuvers, vision alignment, or for any other use case, you can do so.\n\n:param chassisSpeeds: The desired chassis speed.\n:param centerOfRotation: The center of rotation. For example, if you set the\n center of rotation at one corner of the robot and provide a chassis speed\n that only has a dtheta component, the robot will rotate around that corner.\n\n:returns: An array containing the module states. Use caution because these\n module states are not normalized. Sometimes, a user input may cause one of\n the module speeds to go above the attainable max velocity. Use the\n :meth:`desaturateWheelSpeeds` function to rectify this issue.\n In addition, you can use Python unpacking syntax\n to directly assign the module states to variables::\n\n fl, fr, bl, br = kinematics.toSwerveModuleStates(chassisSpeeds)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "toSwerveModuleStates"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "moduleDeltas", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the\ngiven module position deltas. This method is often used for odometry --\ndetermining the robot's position on the field using data from the\nreal-world position delta and angle of each module on the robot.\n\n:param moduleDeltas: The latest change in position of the modules (as a\n SwerveModulePosition type) as measured from respective encoders and gyros.\n The order of the swerve module states should be same as passed into the\n constructor of this class.\n\n:returns: The resulting Twist2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive4Kinematics", "args": [{"name": "arg0", "type": "wpimath.geometry.Translation2d"}, {"name": "arg1", "type": "wpimath.geometry.Translation2d"}, {"name": "arg2", "type": "wpimath.geometry.Translation2d"}, {"name": "arg3", "type": "wpimath.geometry.Translation2d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "attainableMaxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param attainableMaxSpeed: The absolute max speed that a module can reach.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "desiredChassisSpeed", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "attainableMaxModuleSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotTranslationSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotRotationSpeed", "type": "wpimath.units.radians_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum, as well as getting rid of joystick saturation at edges\nof joystick.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param desiredChassisSpeed: The desired speed of the robot\n:param attainableMaxModuleSpeed: The absolute max speed a module can reach\n:param attainableMaxRobotTranslationSpeed: The absolute max speed the robot\n can reach while translating\n:param attainableMaxRobotRotationSpeed: The absolute max speed the robot can\n reach while rotating", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d]", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "getModules"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "moduleHeadings", "type": "Tuple[wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d]"}], "tooltip": "Reset the internal swerve module headings.\n\n:param moduleHeadings: The swerve module headings. The order of the module\n headings should be same as passed into the constructor of this class.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "resetHeadings"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis state from the\ngiven module states. This method is often used for odometry -- determining\nthe robot's position on the field using data from the real-world speed and\nangle of each module on the robot.\n\n:param moduleStates: The state of the modules as an wpi::array of type\n SwerveModuleState, NumModules long as measured from respective encoders\n and gyros. The order of the swerve module states should be same as passed\n into the constructor of this class.\n\n:returns: The resulting chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "centerOfRotation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Performs inverse kinematics to return the module states from a desired\nchassis velocity. This method is often used to convert joystick values into\nmodule speeds and angles.\n\nThis function also supports variable centers of rotation. During normal\noperations, the center of rotation is usually the same as the physical\ncenter of the robot; therefore, the argument is defaulted to that use case.\nHowever, if you wish to change the center of rotation for evasive\nmaneuvers, vision alignment, or for any other use case, you can do so.\n\n:param chassisSpeeds: The desired chassis speed.\n:param centerOfRotation: The center of rotation. For example, if you set the\n center of rotation at one corner of the robot and provide a chassis speed\n that only has a dtheta component, the robot will rotate around that corner.\n\n:returns: An array containing the module states. Use caution because these\n module states are not normalized. Sometimes, a user input may cause one of\n the module speeds to go above the attainable max velocity. Use the\n :meth:`desaturateWheelSpeeds` function to rectify this issue.\n In addition, you can use Python unpacking syntax\n to directly assign the module states to variables::\n\n fl, fr, bl, br = kinematics.toSwerveModuleStates(chassisSpeeds)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "toSwerveModuleStates"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "moduleDeltas", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the\ngiven module position deltas. This method is often used for odometry --\ndetermining the robot's position on the field using data from the\nreal-world position delta and angle of each module on the robot.\n\n:param moduleDeltas: The latest change in position of the modules (as a\n SwerveModulePosition type) as measured from respective encoders and gyros.\n The order of the swerve module states should be same as passed into the\n constructor of this class.\n\n:returns: The resulting Twist2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive4Kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Kinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4KinematicsBase.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4KinematicsBase.ts
index 2b40a02d..43b95f36 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4KinematicsBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4KinematicsBase.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive4KinematicsBase", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4KinematicsBase"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive4KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "Performs interpolation between two values.\n\n:param start: The value to start at.\n:param end: The value to end at.\n:param t: How far between the two values to interpolate. This should be\n bounded to [0, 1].\n\n:returns: The interpolated value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4KinematicsBase", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive4KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4KinematicsBase"}, {"name": "wheelSpeeds", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis speed from the\nwheel speeds. This method is often used for odometry -- determining the\nrobot's position on the field using data from the real-world speed of each\nwheel on the robot.\n\n:param wheelSpeeds: The speeds of the wheels.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4KinematicsBase", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "swerveDrive4KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the given\nchange in wheel positions. This method is often used for odometry --\ndetermining the robot's position on the field using changes in the distance\ndriven by each wheel on the robot.\n\n:param start: The starting distances driven by the wheels.\n:param end: The ending distances driven by the wheels.\n\n:returns: The resulting Twist2d in the robot's movement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4KinematicsBase", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive4KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4KinematicsBase"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\n:param chassisSpeeds: The desired chassis speed.\n\n:returns: The wheel speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4KinematicsBase", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive4KinematicsBase", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4KinematicsBase"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive4KinematicsBase", "type": "wpimath.kinematics.SwerveDrive4KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "Performs interpolation between two values.\n\n:param start: The value to start at.\n:param end: The value to end at.\n:param t: How far between the two values to interpolate. This should be\n bounded to [0, 1].\n\n:returns: The interpolated value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4KinematicsBase", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive4KinematicsBase", "type": "wpimath.kinematics.SwerveDrive4KinematicsBase"}, {"name": "wheelSpeeds", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis speed from the\nwheel speeds. This method is often used for odometry -- determining the\nrobot's position on the field using data from the real-world speed of each\nwheel on the robot.\n\n:param wheelSpeeds: The speeds of the wheels.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4KinematicsBase", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "swerveDrive4KinematicsBase", "type": "wpimath.kinematics.SwerveDrive4KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the given\nchange in wheel positions. This method is often used for odometry --\ndetermining the robot's position on the field using changes in the distance\ndriven by each wheel on the robot.\n\n:param start: The starting distances driven by the wheels.\n:param end: The ending distances driven by the wheels.\n\n:returns: The resulting Twist2d in the robot's movement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4KinematicsBase", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive4KinematicsBase", "type": "wpimath.kinematics.SwerveDrive4KinematicsBase"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\n:param chassisSpeeds: The desired chassis speed.\n\n:returns: The wheel speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4KinematicsBase", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Odometry.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Odometry.ts
index ff4ae41b..433f1c69 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Odometry.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Odometry.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4Odometry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive4Odometry", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a SwerveDriveOdometry object.\n\n:param kinematics: The swerve drive kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param modulePositions: The wheel positions reported by each module.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4Odometry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive4Odometry", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a SwerveDriveOdometry object.\n\n:param kinematics: The swerve drive kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param modulePositions: The wheel positions reported by each module.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Odometry3d.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Odometry3d.ts
index 04096c85..c1d0554c 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Odometry3d.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Odometry3d.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive4Odometry3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Odometry3dBase.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Odometry3dBase.ts
index cdd16a1e..6d2d5fc6 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Odometry3dBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4Odometry3dBase.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs an Odometry3d object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs an Odometry3d object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive4Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive4Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4OdometryBase.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4OdometryBase.ts
index 75f44a92..843dfce9 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4OdometryBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive4OdometryBase.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs an Odometry object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive4OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive4OdometryBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs an Odometry object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive4OdometryBase", "type": "wpimath.kinematics.SwerveDrive4OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive4OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Kinematics.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Kinematics.ts
index a74463d8..e0962508 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Kinematics.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Kinematics.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics", "args": [{"name": "arg0", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "arg1", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "arg2", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "arg3", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "arg4", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "arg5", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "attainableMaxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param attainableMaxSpeed: The absolute max speed that a module can reach.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "desiredChassisSpeed", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "attainableMaxModuleSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotTranslationSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotRotationSpeed", "type": "wpimath.units.radians_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum, as well as getting rid of joystick saturation at edges\nof joystick.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param desiredChassisSpeed: The desired speed of the robot\n:param attainableMaxModuleSpeed: The absolute max speed a module can reach\n:param attainableMaxRobotTranslationSpeed: The absolute max speed the robot\n can reach while translating\n:param attainableMaxRobotRotationSpeed: The absolute max speed the robot can\n reach while rotating", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTranslation2d]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d]", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "getModules"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "moduleHeadings", "type": "Tuple[wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d]"}], "tooltip": "Reset the internal swerve module headings.\n\n:param moduleHeadings: The swerve module headings. The order of the module\n headings should be same as passed into the constructor of this class.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "resetHeadings"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d]"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis state from the\ngiven module states. This method is often used for odometry -- determining\nthe robot's position on the field using data from the real-world speed and\nangle of each module on the robot.\n\n:param moduleStates: The state of the modules as an wpi::array of type\n SwerveModuleState, NumModules long as measured from respective encoders\n and gyros. The order of the swerve module states should be same as passed\n into the constructor of this class.\n\n:returns: The resulting chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}, {"name": "centerOfRotation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Performs inverse kinematics to return the module states from a desired\nchassis velocity. This method is often used to convert joystick values into\nmodule speeds and angles.\n\nThis function also supports variable centers of rotation. During normal\noperations, the center of rotation is usually the same as the physical\ncenter of the robot; therefore, the argument is defaulted to that use case.\nHowever, if you wish to change the center of rotation for evasive\nmaneuvers, vision alignment, or for any other use case, you can do so.\n\n:param chassisSpeeds: The desired chassis speed.\n:param centerOfRotation: The center of rotation. For example, if you set the\n center of rotation at one corner of the robot and provide a chassis speed\n that only has a dtheta component, the robot will rotate around that corner.\n\n:returns: An array containing the module states. Use caution because these\n module states are not normalized. Sometimes, a user input may cause one of\n the module speeds to go above the attainable max velocity. Use the\n :meth:`desaturateWheelSpeeds` function to rectify this issue.\n In addition, you can use Python unpacking syntax\n to directly assign the module states to variables::\n\n fl, fr, bl, br = kinematics.toSwerveModuleStates(chassisSpeeds)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "toSwerveModuleStates"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "moduleDeltas", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the\ngiven module position deltas. This method is often used for odometry --\ndetermining the robot's position on the field using data from the\nreal-world position delta and angle of each module on the robot.\n\n:param moduleDeltas: The latest change in position of the modules (as a\n SwerveModulePosition type) as measured from respective encoders and gyros.\n The order of the swerve module states should be same as passed into the\n constructor of this class.\n\n:returns: The resulting Twist2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive6Kinematics", "args": [{"name": "arg0", "type": "wpimath.geometry.Translation2d"}, {"name": "arg1", "type": "wpimath.geometry.Translation2d"}, {"name": "arg2", "type": "wpimath.geometry.Translation2d"}, {"name": "arg3", "type": "wpimath.geometry.Translation2d"}, {"name": "arg4", "type": "wpimath.geometry.Translation2d"}, {"name": "arg5", "type": "wpimath.geometry.Translation2d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "attainableMaxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param attainableMaxSpeed: The absolute max speed that a module can reach.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}, {"name": "desiredChassisSpeed", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "attainableMaxModuleSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotTranslationSpeed", "type": "wpimath.units.meters_per_second"}, {"name": "attainableMaxRobotRotationSpeed", "type": "wpimath.units.radians_per_second"}], "tooltip": "Renormalizes the wheel speeds if any individual speed is above the\nspecified maximum, as well as getting rid of joystick saturation at edges\nof joystick.\n\nSometimes, after inverse kinematics, the requested speed\nfrom one or more modules may be above the max attainable speed for the\ndriving motor on that module. To fix this issue, one can reduce all the\nwheel speeds to make sure that all requested module speeds are at-or-below\nthe absolute threshold, while maintaining the ratio of speeds between\nmodules.\n\n:param moduleStates: Reference to array of module states. The array will be\n mutated with the normalized speeds!\n:param desiredChassisSpeed: The desired speed of the robot\n:param attainableMaxModuleSpeed: The absolute max speed a module can reach\n:param attainableMaxRobotTranslationSpeed: The absolute max speed the robot\n can reach while translating\n:param attainableMaxRobotRotationSpeed: The absolute max speed the robot can\n reach while rotating", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "desaturateWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d, wpimath.geometry._geometry.Translation2d]", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "getModules"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "moduleHeadings", "type": "Tuple[wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d, wpimath.geometry._geometry.Rotation2d]"}], "tooltip": "Reset the internal swerve module headings.\n\n:param moduleHeadings: The swerve module headings. The order of the module\n headings should be same as passed into the constructor of this class.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "resetHeadings"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "moduleStates", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis state from the\ngiven module states. This method is often used for odometry -- determining\nthe robot's position on the field using data from the real-world speed and\nangle of each module on the robot.\n\n:param moduleStates: The state of the modules as an wpi::array of type\n SwerveModuleState, NumModules long as measured from respective encoders\n and gyros. The order of the swerve module states should be same as passed\n into the constructor of this class.\n\n:returns: The resulting chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}, {"name": "centerOfRotation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Performs inverse kinematics to return the module states from a desired\nchassis velocity. This method is often used to convert joystick values into\nmodule speeds and angles.\n\nThis function also supports variable centers of rotation. During normal\noperations, the center of rotation is usually the same as the physical\ncenter of the robot; therefore, the argument is defaulted to that use case.\nHowever, if you wish to change the center of rotation for evasive\nmaneuvers, vision alignment, or for any other use case, you can do so.\n\n:param chassisSpeeds: The desired chassis speed.\n:param centerOfRotation: The center of rotation. For example, if you set the\n center of rotation at one corner of the robot and provide a chassis speed\n that only has a dtheta component, the robot will rotate around that corner.\n\n:returns: An array containing the module states. Use caution because these\n module states are not normalized. Sometimes, a user input may cause one of\n the module speeds to go above the attainable max velocity. Use the\n :meth:`desaturateWheelSpeeds` function to rectify this issue.\n In addition, you can use Python unpacking syntax\n to directly assign the module states to variables::\n\n fl, fr, bl, br = kinematics.toSwerveModuleStates(chassisSpeeds)", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "toSwerveModuleStates"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "moduleDeltas", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the\ngiven module position deltas. This method is often used for odometry --\ndetermining the robot's position on the field using data from the\nreal-world position delta and angle of each module on the robot.\n\n:param moduleDeltas: The latest change in position of the modules (as a\n SwerveModulePosition type) as measured from respective encoders and gyros.\n The order of the swerve module states should be same as passed into the\n constructor of this class.\n\n:returns: The resulting Twist2d.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive6Kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Kinematics", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6KinematicsBase.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6KinematicsBase.ts
index 2eff407b..8cbb1896 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6KinematicsBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6KinematicsBase.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive6KinematicsBase", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6KinematicsBase"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive6KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "Performs interpolation between two values.\n\n:param start: The value to start at.\n:param end: The value to end at.\n:param t: How far between the two values to interpolate. This should be\n bounded to [0, 1].\n\n:returns: The interpolated value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6KinematicsBase", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive6KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6KinematicsBase"}, {"name": "wheelSpeeds", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis speed from the\nwheel speeds. This method is often used for odometry -- determining the\nrobot's position on the field using data from the real-world speed of each\nwheel on the robot.\n\n:param wheelSpeeds: The speeds of the wheels.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6KinematicsBase", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Twist2d", "args": [{"name": "swerveDrive6KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the given\nchange in wheel positions. This method is often used for odometry --\ndetermining the robot's position on the field using changes in the distance\ndriven by each wheel on the robot.\n\n:param start: The starting distances driven by the wheels.\n:param end: The ending distances driven by the wheels.\n\n:returns: The resulting Twist2d in the robot's movement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6KinematicsBase", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive6KinematicsBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6KinematicsBase"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics._kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\n:param chassisSpeeds: The desired chassis speed.\n\n:returns: The wheel speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6KinematicsBase", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive6KinematicsBase", "args": [], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6KinematicsBase"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]", "args": [{"name": "swerveDrive6KinematicsBase", "type": "wpimath.kinematics.SwerveDrive6KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "t", "type": "float"}], "tooltip": "Performs interpolation between two values.\n\n:param start: The value to start at.\n:param end: The value to end at.\n:param t: How far between the two values to interpolate. This should be\n bounded to [0, 1].\n\n:returns: The interpolated value.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6KinematicsBase", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myChassisSpeeds"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.ChassisSpeeds", "args": [{"name": "swerveDrive6KinematicsBase", "type": "wpimath.kinematics.SwerveDrive6KinematicsBase"}, {"name": "wheelSpeeds", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]"}], "tooltip": "Performs forward kinematics to return the resulting chassis speed from the\nwheel speeds. This method is often used for odometry -- determining the\nrobot's position on the field using data from the real-world speed of each\nwheel on the robot.\n\n:param wheelSpeeds: The speeds of the wheels.\n\n:returns: The chassis speed.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6KinematicsBase", "FUNC": "toChassisSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTwist2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Twist2d", "args": [{"name": "swerveDrive6KinematicsBase", "type": "wpimath.kinematics.SwerveDrive6KinematicsBase"}, {"name": "start", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "end", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Performs forward kinematics to return the resulting Twist2d from the given\nchange in wheel positions. This method is often used for odometry --\ndetermining the robot's position on the field using changes in the distance\ndriven by each wheel on the robot.\n\n:param start: The starting distances driven by the wheels.\n:param end: The ending distances driven by the wheels.\n\n:returns: The resulting Twist2d in the robot's movement.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6KinematicsBase", "FUNC": "toTwist2d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Tuple[wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState, wpimath.kinematics._kinematics.SwerveModuleState]", "args": [{"name": "swerveDrive6KinematicsBase", "type": "wpimath.kinematics.SwerveDrive6KinematicsBase"}, {"name": "chassisSpeeds", "type": "wpimath.kinematics.ChassisSpeeds"}], "tooltip": "Performs inverse kinematics to return the wheel speeds from a desired\nchassis velocity. This method is often used to convert joystick values into\nwheel speeds.\n\n:param chassisSpeeds: The desired chassis speed.\n\n:returns: The wheel speeds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6KinematicsBase", "FUNC": "toWheelSpeeds"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myChassisSpeeds"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Odometry.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Odometry.ts
index 1bd8b7fe..a869fab1 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Odometry.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Odometry.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6Odometry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive6Odometry", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs a SwerveDriveOdometry object.\n\n:param kinematics: The swerve drive kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param modulePositions: The wheel positions reported by each module.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6Odometry"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive6Odometry", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs a SwerveDriveOdometry object.\n\n:param kinematics: The swerve drive kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param modulePositions: The wheel positions reported by each module.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Odometry3d.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Odometry3d.ts
index df72979c..049097d7 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Odometry3d.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Odometry3d.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive6Odometry3d", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "modulePositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3d"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Odometry3dBase.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Odometry3dBase.ts
index c759d0f4..55750b10 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Odometry3dBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6Odometry3dBase.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Constructs an Odometry3d object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Constructs an Odometry3d object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose3d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation3d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, {"name": "translation", "type": "wpimath.geometry.Translation3d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation3d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "swerveDrive6Odometry3dBase", "type": "wpimath.kinematics.SwerveDrive6Odometry3dBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation3d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6Odometry3dBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Odometry3dBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6OdometryBase.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6OdometryBase.ts
index f3aeac74..ae0b9025 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6OdometryBase.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveDrive6OdometryBase.ts
@@ -11,13 +11,13 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 7 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Constructs an Odometry object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}, {"name": "translation", "type": "wpimath.geometry._geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics._kinematics.SwerveDrive6OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveDrive6OdometryBase", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6KinematicsBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "initialPose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Constructs an Odometry object.\n\n:param kinematics: The kinematics for your drivetrain.\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param initialPose: The starting position of the robot on the field.", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}], "tooltip": "Returns the position of the robot on the field.\n\n:returns: The pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "getPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the pose.\n\n:param pose: The pose to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Resets the robot's position on the field.\n\nThe gyroscope angle does not need to be reset here on the user's robot\ncode. The library automatically takes care of offsetting the gyro angle.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n:param pose: The position on the field that your robot is at.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetPosition"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Resets the rotation of the pose.\n\n:param rotation: The rotation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetRotation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}, {"name": "translation", "type": "wpimath.geometry.Translation2d"}], "tooltip": "Resets the translation of the pose.\n\n:param translation: The translation to reset to.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "resetTranslation"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "swerveDrive6OdometryBase", "type": "wpimath.kinematics.SwerveDrive6OdometryBase"}, {"name": "gyroAngle", "type": "wpimath.geometry.Rotation2d"}, {"name": "wheelPositions", "type": "Tuple[wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition, wpimath.kinematics._kinematics.SwerveModulePosition]"}], "tooltip": "Updates the robot's position on the field using forward kinematics and\nintegration of the pose over time. This method takes in an angle parameter\nwhich is used instead of the angular rate that is calculated from forward\nkinematics, in addition to the current distance measurement at each wheel.\n\n:param gyroAngle: The angle reported by the gyroscope.\n:param wheelPositions: The current distances measured by each wheel.\n\n:returns: The new pose of the robot.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveDrive6OdometryBase", "FUNC": "update"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6OdometryBase"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveModulePosition.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveModulePosition.ts
index ccc48fb1..dba968ba 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveModulePosition.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveModulePosition.ts
@@ -25,8 +25,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.SwerveModulePosition", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "swerveModulePosition", "selfType": "wpimath.kinematics.SwerveModulePosition"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModulePosition", "VAR": "distance"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.SwerveModulePosition", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "swerveModulePosition", "selfType": "wpimath.kinematics.SwerveModulePosition"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModulePosition", "VAR": "distance_ft"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.SwerveModulePosition", "varType": "wpimath.units.feet", "importModule": "", "selfLabel": "swerveModulePosition", "selfType": "wpimath.kinematics.SwerveModulePosition"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModulePosition", "VAR": "distance_ft"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModulePosition"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveModulePosition", "args": [{"name": "distance", "type": "wpimath.units.meters"}, {"name": "angle", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModulePosition"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModulePosition"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics._kinematics.SwerveModulePosition", "args": [{"name": "swerveModulePosition", "type": "wpimath.kinematics._kinematics.SwerveModulePosition"}, {"name": "endValue", "type": "wpimath.kinematics._kinematics.SwerveModulePosition"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModulePosition", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModulePosition"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveModulePosition", "args": [{"name": "distance", "type": "wpimath.units.meters"}, {"name": "angle", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModulePosition"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModulePosition"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.kinematics.SwerveModulePosition", "args": [{"name": "swerveModulePosition", "type": "wpimath.kinematics.SwerveModulePosition"}, {"name": "endValue", "type": "wpimath.kinematics.SwerveModulePosition"}, {"name": "t", "type": "float"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModulePosition", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModulePosition"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.kinematics.SwerveModuleState.ts b/src/blocks/generated/class_wpimath.kinematics.SwerveModuleState.ts
index 8b7523c6..b74d144c 100644
--- a/src/blocks/generated/class_wpimath.kinematics.SwerveModuleState.ts
+++ b/src/blocks/generated/class_wpimath.kinematics.SwerveModuleState.ts
@@ -25,9 +25,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.SwerveModuleState", "varType": "wpimath.units.meters_per_second", "importModule": "", "selfLabel": "swerveModuleState", "selfType": "wpimath.kinematics.SwerveModuleState"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModuleState", "VAR": "speed"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.SwerveModuleState", "varType": "wpimath.units.feet_per_second", "importModule": "", "selfLabel": "swerveModuleState", "selfType": "wpimath.kinematics.SwerveModuleState"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModuleState", "VAR": "speed_fps"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.kinematics.SwerveModuleState", "varType": "wpimath.units.feet_per_second", "importModule": "", "selfLabel": "swerveModuleState", "selfType": "wpimath.kinematics.SwerveModuleState"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModuleState", "VAR": "speed_fps"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics._kinematics.SwerveModuleState", "args": [{"name": "speed", "type": "wpimath.units.meters_per_second"}, {"name": "angle", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModuleState"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveModuleState", "type": "wpimath.kinematics._kinematics.SwerveModuleState"}, {"name": "currentAngle", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Scales speed by cosine of angle error. This scales down movement\nperpendicular to the desired direction of travel that can occur when\nmodules change directions. This results in smoother driving.\n\n:param currentAngle: The current module angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModuleState", "FUNC": "cosineScale"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveModuleState", "type": "wpimath.kinematics._kinematics.SwerveModuleState"}, {"name": "currentAngle", "type": "wpimath.geometry._geometry.Rotation2d"}], "tooltip": "Minimize the change in the heading this swerve module state would\nrequire by potentially reversing the direction the wheel spins. If this is\nused with the PIDController class's continuous input functionality, the\nfurthest a wheel will ever rotate is 90 degrees.\n\n:param currentAngle: The current module angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModuleState", "FUNC": "optimize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveModuleState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.kinematics.SwerveModuleState", "args": [{"name": "speed", "type": "wpimath.units.meters_per_second"}, {"name": "angle", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "", "importModule": "wpimath.kinematics"}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModuleState"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveModuleState", "type": "wpimath.kinematics.SwerveModuleState"}, {"name": "currentAngle", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Scales speed by cosine of angle error. This scales down movement\nperpendicular to the desired direction of travel that can occur when\nmodules change directions. This results in smoother driving.\n\n:param currentAngle: The current module angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModuleState", "FUNC": "cosineScale"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "swerveModuleState", "type": "wpimath.kinematics.SwerveModuleState"}, {"name": "currentAngle", "type": "wpimath.geometry.Rotation2d"}], "tooltip": "Minimize the change in the heading this swerve module state would\nrequire by potentially reversing the direction the wheel spins. If this is\nused with the PIDController class's continuous input functionality, the\nfurthest a wheel will ever rotate is 90 degrees.\n\n:param currentAngle: The current module angle.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.kinematics.SwerveModuleState", "FUNC": "optimize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveModuleState"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.optimization.SimulatedAnnealing.ts b/src/blocks/generated/class_wpimath.optimization.SimulatedAnnealing.ts
index fa27338a..f27ce51f 100644
--- a/src/blocks/generated/class_wpimath.optimization.SimulatedAnnealing.ts
+++ b/src/blocks/generated/class_wpimath.optimization.SimulatedAnnealing.ts
@@ -11,8 +11,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 2 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimulatedAnnealing"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.optimization.SimulatedAnnealing", "args": [{"name": "initialTemperature", "type": "float"}, {"name": "neighbor", "type": "Callable[[object], object]"}, {"name": "cost", "type": "Callable[[object], float]"}], "tooltip": "Constructor for Simulated Annealing that can be used for the same functions\nbut with different initial states.\n\n:param initialTemperature: The initial temperature. Higher temperatures make\n it more likely a worse state will be accepted during iteration, helping\n to avoid local minima. The temperature is decreased over time.\n:param neighbor: Function that generates a random neighbor of the current\n state.\n:param cost: Function that returns the scalar cost of a state.", "importModule": "wpimath.optimization"}, "fields": {"MODULE_OR_CLASS": "wpimath.optimization.SimulatedAnnealing"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "object", "args": [{"name": "simulatedAnnealing", "type": "wpimath._controls._controls.optimization.SimulatedAnnealing"}, {"name": "initialGuess", "type": "object"}, {"name": "iterations", "type": "int"}], "tooltip": "Runs the Simulated Annealing algorithm.\n\n:param initialGuess: The initial state.\n:param iterations: Number of iterations to run the solver.\n\n:returns: The optimized state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.optimization.SimulatedAnnealing", "FUNC": "solve"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimulatedAnnealing"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimulatedAnnealing"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.optimization.SimulatedAnnealing", "args": [{"name": "initialTemperature", "type": "float"}, {"name": "neighbor", "type": "Callable[[object], object]"}, {"name": "cost", "type": "Callable[[object], float]"}], "tooltip": "Constructor for Simulated Annealing that can be used for the same functions\nbut with different initial states.\n\n:param initialTemperature: The initial temperature. Higher temperatures make\n it more likely a worse state will be accepted during iteration, helping\n to avoid local minima. The temperature is decreased over time.\n:param neighbor: Function that generates a random neighbor of the current\n state.\n:param cost: Function that returns the scalar cost of a state.", "importModule": "wpimath.optimization"}, "fields": {"MODULE_OR_CLASS": "wpimath.optimization.SimulatedAnnealing"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "object", "args": [{"name": "simulatedAnnealing", "type": "wpimath.optimization.SimulatedAnnealing"}, {"name": "initialGuess", "type": "object"}, {"name": "iterations", "type": "int"}], "tooltip": "Runs the Simulated Annealing algorithm.\n\n:param initialGuess: The initial state.\n:param iterations: Number of iterations to run the solver.\n\n:returns: The optimized state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.optimization.SimulatedAnnealing", "FUNC": "solve"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimulatedAnnealing"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.path.TravelingSalesman.ts b/src/blocks/generated/class_wpimath.path.TravelingSalesman.ts
index 6d4ffc1a..9f6acee6 100644
--- a/src/blocks/generated/class_wpimath.path.TravelingSalesman.ts
+++ b/src/blocks/generated/class_wpimath.path.TravelingSalesman.ts
@@ -11,9 +11,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 3 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTravelingSalesman"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.path.TravelingSalesman", "args": [], "tooltip": "Constructs a traveling salesman problem solver with a cost function defined\nas the 2D distance between poses.", "importModule": "wpimath.path"}, "fields": {"MODULE_OR_CLASS": "wpimath.path.TravelingSalesman"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTravelingSalesman"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.path.TravelingSalesman", "args": [{"name": "cost", "type": "Callable[[wpimath.geometry._geometry.Pose2d, wpimath.geometry._geometry.Pose2d], float]"}], "tooltip": "Constructs a traveling salesman problem solver with a user-provided cost\nfunction.\n\n:param cost: Function that returns the cost between two poses. The sum of\n the costs for every pair of poses is minimized.", "importModule": "wpimath.path"}, "fields": {"MODULE_OR_CLASS": "wpimath.path.TravelingSalesman"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d], float]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "travelingSalesman", "type": "wpimath._controls._controls.path.TravelingSalesman"}, {"name": "poses", "type": "List[wpimath.geometry._geometry.Pose2d]"}, {"name": "iterations", "type": "int"}], "tooltip": "Finds the path through every pose that minimizes the cost. The first pose\nin the returned array is the first pose that was passed in.\n\nThis overload supports a dynamically-sized list of poses for Python to use.\n\n:param poses: An array of Pose2ds the path must pass through.\n:param iterations: The number of times the solver attempts to find a better\n random neighbor.\n\n:returns: The optimized path as an array of Pose2ds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.path.TravelingSalesman", "FUNC": "solve"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTravelingSalesman"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTravelingSalesman"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.path.TravelingSalesman", "args": [], "tooltip": "Constructs a traveling salesman problem solver with a cost function defined\nas the 2D distance between poses.", "importModule": "wpimath.path"}, "fields": {"MODULE_OR_CLASS": "wpimath.path.TravelingSalesman"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTravelingSalesman"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.path.TravelingSalesman", "args": [{"name": "cost", "type": "Callable[[wpimath.geometry._geometry.Pose2d, wpimath.geometry._geometry.Pose2d], float]"}], "tooltip": "Constructs a traveling salesman problem solver with a user-provided cost\nfunction.\n\n:param cost: Function that returns the cost between two poses. The sum of\n the costs for every pair of poses is minimized.", "importModule": "wpimath.path"}, "fields": {"MODULE_OR_CLASS": "wpimath.path.TravelingSalesman"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[wpimath.geometry._geometry.Pose2d]", "args": [{"name": "travelingSalesman", "type": "wpimath.path.TravelingSalesman"}, {"name": "poses", "type": "List[wpimath.geometry._geometry.Pose2d]"}, {"name": "iterations", "type": "int"}], "tooltip": "Finds the path through every pose that minimizes the cost. The first pose\nin the returned array is the first pose that was passed in.\n\nThis overload supports a dynamically-sized list of poses for Python to use.\n\n:param poses: An array of Pose2ds the path must pass through.\n:param iterations: The number of times the solver attempts to find a better\n random neighbor.\n\n:returns: The optimized path as an array of Pose2ds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.path.TravelingSalesman", "FUNC": "solve"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTravelingSalesman"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.spline.CubicHermiteSpline.ts b/src/blocks/generated/class_wpimath.spline.CubicHermiteSpline.ts
index c8fc00b1..e4f2f67c 100644
--- a/src/blocks/generated/class_wpimath.spline.CubicHermiteSpline.ts
+++ b/src/blocks/generated/class_wpimath.spline.CubicHermiteSpline.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCubicHermiteSpline"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline._spline.CubicHermiteSpline", "args": [{"name": "xInitialControlVector", "type": "Tuple[float, float]"}, {"name": "xFinalControlVector", "type": "Tuple[float, float]"}, {"name": "yInitialControlVector", "type": "Tuple[float, float]"}, {"name": "yFinalControlVector", "type": "Tuple[float, float]"}], "tooltip": "Constructs a cubic hermite spline with the specified control vectors. Each\ncontrol vector contains info about the location of the point and its first\nderivative.\n\n:param xInitialControlVector: The control vector for the initial point in\n the x dimension.\n:param xFinalControlVector: The control vector for the final point in\n the x dimension.\n:param yInitialControlVector: The control vector for the initial point in\n the y dimension.\n:param yFinalControlVector: The control vector for the final point in\n the y dimension.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.CubicHermiteSpline"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[6, 4]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[6, 4]]", "args": [{"name": "spline3", "type": "wpimath.spline._spline.Spline3"}], "tooltip": "Returns the coefficients of the spline.\n\n:returns: The coefficients of the spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3", "FUNC": "coefficients"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline._spline.Spline3.ControlVector", "args": [{"name": "cubicHermiteSpline", "type": "wpimath.spline._spline.CubicHermiteSpline"}], "tooltip": "Returns the final control vector that created this spline.\n\n:returns: The final control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.CubicHermiteSpline", "FUNC": "getFinalControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCubicHermiteSpline"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline._spline.Spline3.ControlVector", "args": [{"name": "cubicHermiteSpline", "type": "wpimath.spline._spline.CubicHermiteSpline"}], "tooltip": "Returns the initial control vector that created this spline.\n\n:returns: The initial control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.CubicHermiteSpline", "FUNC": "getInitialControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCubicHermiteSpline"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myradians_per_meter]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "spline3", "type": "wpimath.spline._spline.Spline3"}, {"name": "t", "type": "float"}], "tooltip": "Gets the pose and curvature at some point t on the spline.\n\n:param t: The point t\n\n:returns: The pose and curvature at that point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3", "FUNC": "getPoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCubicHermiteSpline"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline.CubicHermiteSpline", "args": [{"name": "xInitialControlVector", "type": "Tuple[float, float]"}, {"name": "xFinalControlVector", "type": "Tuple[float, float]"}, {"name": "yInitialControlVector", "type": "Tuple[float, float]"}, {"name": "yFinalControlVector", "type": "Tuple[float, float]"}], "tooltip": "Constructs a cubic hermite spline with the specified control vectors. Each\ncontrol vector contains info about the location of the point and its first\nderivative.\n\n:param xInitialControlVector: The control vector for the initial point in\n the x dimension.\n:param xFinalControlVector: The control vector for the final point in\n the x dimension.\n:param yInitialControlVector: The control vector for the initial point in\n the y dimension.\n:param yFinalControlVector: The control vector for the final point in\n the y dimension.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.CubicHermiteSpline"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[6, 4]]", "args": [{"name": "spline3", "type": "wpimath.spline.Spline3"}], "tooltip": "Returns the coefficients of the spline.\n\n:returns: The coefficients of the spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3", "FUNC": "coefficients"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline.Spline3.ControlVector", "args": [{"name": "cubicHermiteSpline", "type": "wpimath.spline.CubicHermiteSpline"}], "tooltip": "Returns the final control vector that created this spline.\n\n:returns: The final control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.CubicHermiteSpline", "FUNC": "getFinalControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCubicHermiteSpline"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline.Spline3.ControlVector", "args": [{"name": "cubicHermiteSpline", "type": "wpimath.spline.CubicHermiteSpline"}], "tooltip": "Returns the initial control vector that created this spline.\n\n:returns: The initial control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.CubicHermiteSpline", "FUNC": "getInitialControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCubicHermiteSpline"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "spline3", "type": "wpimath.spline.Spline3"}, {"name": "t", "type": "float"}], "tooltip": "Gets the pose and curvature at some point t on the spline.\n\n:param t: The point t\n\n:returns: The pose and curvature at that point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3", "FUNC": "getPoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.spline.QuinticHermiteSpline.ts b/src/blocks/generated/class_wpimath.spline.QuinticHermiteSpline.ts
index daa38653..6e550ec5 100644
--- a/src/blocks/generated/class_wpimath.spline.QuinticHermiteSpline.ts
+++ b/src/blocks/generated/class_wpimath.spline.QuinticHermiteSpline.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuinticHermiteSpline"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline._spline.QuinticHermiteSpline", "args": [{"name": "xInitialControlVector", "type": "Tuple[float, float, float]"}, {"name": "xFinalControlVector", "type": "Tuple[float, float, float]"}, {"name": "yInitialControlVector", "type": "Tuple[float, float, float]"}, {"name": "yFinalControlVector", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a quintic hermite spline with the specified control vectors.\nEach control vector contains into about the location of the point, its\nfirst derivative, and its second derivative.\n\n:param xInitialControlVector: The control vector for the initial point in\n the x dimension.\n:param xFinalControlVector: The control vector for the final point in\n the x dimension.\n:param yInitialControlVector: The control vector for the initial point in\n the y dimension.\n:param yFinalControlVector: The control vector for the final point in\n the y dimension.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.QuinticHermiteSpline"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[6, 6]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[6, 6]]", "args": [{"name": "spline5", "type": "wpimath.spline._spline.Spline5"}], "tooltip": "Returns the coefficients of the spline.\n\n:returns: The coefficients of the spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5", "FUNC": "coefficients"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline._spline.Spline5.ControlVector", "args": [{"name": "quinticHermiteSpline", "type": "wpimath.spline._spline.QuinticHermiteSpline"}], "tooltip": "Returns the final control vector that created this spline.\n\n:returns: The final control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.QuinticHermiteSpline", "FUNC": "getFinalControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuinticHermiteSpline"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline._spline.Spline5.ControlVector", "args": [{"name": "quinticHermiteSpline", "type": "wpimath.spline._spline.QuinticHermiteSpline"}], "tooltip": "Returns the initial control vector that created this spline.\n\n:returns: The initial control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.QuinticHermiteSpline", "FUNC": "getInitialControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuinticHermiteSpline"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myradians_per_meter]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "spline5", "type": "wpimath.spline._spline.Spline5"}, {"name": "t", "type": "float"}], "tooltip": "Gets the pose and curvature at some point t on the spline.\n\n:param t: The point t\n\n:returns: The pose and curvature at that point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5", "FUNC": "getPoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myQuinticHermiteSpline"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline.QuinticHermiteSpline", "args": [{"name": "xInitialControlVector", "type": "Tuple[float, float, float]"}, {"name": "xFinalControlVector", "type": "Tuple[float, float, float]"}, {"name": "yInitialControlVector", "type": "Tuple[float, float, float]"}, {"name": "yFinalControlVector", "type": "Tuple[float, float, float]"}], "tooltip": "Constructs a quintic hermite spline with the specified control vectors.\nEach control vector contains into about the location of the point, its\nfirst derivative, and its second derivative.\n\n:param xInitialControlVector: The control vector for the initial point in\n the x dimension.\n:param xFinalControlVector: The control vector for the final point in\n the x dimension.\n:param yInitialControlVector: The control vector for the initial point in\n the y dimension.\n:param yFinalControlVector: The control vector for the final point in\n the y dimension.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.QuinticHermiteSpline"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[6, 6]]", "args": [{"name": "spline5", "type": "wpimath.spline.Spline5"}], "tooltip": "Returns the coefficients of the spline.\n\n:returns: The coefficients of the spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5", "FUNC": "coefficients"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline.Spline5.ControlVector", "args": [{"name": "quinticHermiteSpline", "type": "wpimath.spline.QuinticHermiteSpline"}], "tooltip": "Returns the final control vector that created this spline.\n\n:returns: The final control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.QuinticHermiteSpline", "FUNC": "getFinalControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuinticHermiteSpline"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline.Spline5.ControlVector", "args": [{"name": "quinticHermiteSpline", "type": "wpimath.spline.QuinticHermiteSpline"}], "tooltip": "Returns the initial control vector that created this spline.\n\n:returns: The initial control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.QuinticHermiteSpline", "FUNC": "getInitialControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myQuinticHermiteSpline"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "spline5", "type": "wpimath.spline.Spline5"}, {"name": "t", "type": "float"}], "tooltip": "Gets the pose and curvature at some point t on the spline.\n\n:param t: The point t\n\n:returns: The pose and curvature at that point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5", "FUNC": "getPoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.spline.Spline3.ControlVector.ts b/src/blocks/generated/class_wpimath.spline.Spline3.ControlVector.ts
index f2ee8a3c..07ef247f 100644
--- a/src/blocks/generated/class_wpimath.spline.Spline3.ControlVector.ts
+++ b/src/blocks/generated/class_wpimath.spline.Spline3.ControlVector.ts
@@ -16,10 +16,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.spline.Spline3.ControlVector", "varType": "Tuple[float, float]", "importModule": "", "selfLabel": "controlVector", "selfType": "wpimath.spline.Spline3.ControlVector"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3.ControlVector", "VAR": "x"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}},
- {"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.spline.Spline3.ControlVector", "varType": "Tuple[float, float]", "importModule": "", "selfLabel": "controlVector", "selfType": "wpimath.spline.Spline3.ControlVector"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3.ControlVector", "VAR": "x"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}},
+ {"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.spline.Spline3.ControlVector", "varType": "Tuple[float, float]", "importModule": "", "selfLabel": "controlVector", "selfType": "wpimath.spline.Spline3.ControlVector"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3.ControlVector", "VAR": "x"}, "inputs": {"VALUE": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.spline.Spline3.ControlVector", "varType": "Tuple[float, float]", "importModule": "", "selfLabel": "controlVector", "selfType": "wpimath.spline.Spline3.ControlVector"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3.ControlVector", "VAR": "y"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}},
- {"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.spline.Spline3.ControlVector", "varType": "Tuple[float, float]", "importModule": "", "selfLabel": "controlVector", "selfType": "wpimath.spline.Spline3.ControlVector"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3.ControlVector", "VAR": "y"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline._spline.Spline3.ControlVector", "args": [{"name": "x", "type": "Tuple[float, float]"}, {"name": "y", "type": "Tuple[float, float]"}], "tooltip": "", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3.ControlVector"}}}}},
+ {"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.spline.Spline3.ControlVector", "varType": "Tuple[float, float]", "importModule": "", "selfLabel": "controlVector", "selfType": "wpimath.spline.Spline3.ControlVector"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3.ControlVector", "VAR": "y"}, "inputs": {"VALUE": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline.Spline3.ControlVector", "args": [{"name": "x", "type": "Tuple[float, float]"}, {"name": "y", "type": "Tuple[float, float]"}], "tooltip": "", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3.ControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.spline.Spline3.ts b/src/blocks/generated/class_wpimath.spline.Spline3.ts
index 7c26fa5f..7e1e5c57 100644
--- a/src/blocks/generated/class_wpimath.spline.Spline3.ts
+++ b/src/blocks/generated/class_wpimath.spline.Spline3.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySpline3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline._spline.Spline3", "args": [], "tooltip": "", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[6, 4]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[6, 4]]", "args": [{"name": "spline3", "type": "wpimath.spline._spline.Spline3"}], "tooltip": "Returns the coefficients of the spline.\n\n:returns: The coefficients of the spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3", "FUNC": "coefficients"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline._spline.Spline3.ControlVector", "args": [{"name": "spline3", "type": "wpimath.spline._spline.Spline3"}], "tooltip": "Returns the final control vector that created this spline.\n\n:returns: The final control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3", "FUNC": "getFinalControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline._spline.Spline3.ControlVector", "args": [{"name": "spline3", "type": "wpimath.spline._spline.Spline3"}], "tooltip": "Returns the initial control vector that created this spline.\n\n:returns: The initial control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3", "FUNC": "getInitialControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myradians_per_meter]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "spline3", "type": "wpimath.spline._spline.Spline3"}, {"name": "t", "type": "float"}], "tooltip": "Gets the pose and curvature at some point t on the spline.\n\n:param t: The point t\n\n:returns: The pose and curvature at that point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3", "FUNC": "getPoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySpline3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline.Spline3", "args": [], "tooltip": "", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[6, 4]]", "args": [{"name": "spline3", "type": "wpimath.spline.Spline3"}], "tooltip": "Returns the coefficients of the spline.\n\n:returns: The coefficients of the spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3", "FUNC": "coefficients"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline.Spline3.ControlVector", "args": [{"name": "spline3", "type": "wpimath.spline.Spline3"}], "tooltip": "Returns the final control vector that created this spline.\n\n:returns: The final control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3", "FUNC": "getFinalControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline.Spline3.ControlVector", "args": [{"name": "spline3", "type": "wpimath.spline.Spline3"}], "tooltip": "Returns the initial control vector that created this spline.\n\n:returns: The initial control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3", "FUNC": "getInitialControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "spline3", "type": "wpimath.spline.Spline3"}, {"name": "t", "type": "float"}], "tooltip": "Gets the pose and curvature at some point t on the spline.\n\n:param t: The point t\n\n:returns: The pose and curvature at that point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline3", "FUNC": "getPoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.spline.Spline5.ControlVector.ts b/src/blocks/generated/class_wpimath.spline.Spline5.ControlVector.ts
index 35f3ab4a..599c40ca 100644
--- a/src/blocks/generated/class_wpimath.spline.Spline5.ControlVector.ts
+++ b/src/blocks/generated/class_wpimath.spline.Spline5.ControlVector.ts
@@ -16,10 +16,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.spline.Spline5.ControlVector", "varType": "Tuple[float, float, float]", "importModule": "", "selfLabel": "controlVector", "selfType": "wpimath.spline.Spline5.ControlVector"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5.ControlVector", "VAR": "x"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}},
- {"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.spline.Spline5.ControlVector", "varType": "Tuple[float, float, float]", "importModule": "", "selfLabel": "controlVector", "selfType": "wpimath.spline.Spline5.ControlVector"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5.ControlVector", "VAR": "x"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}},
+ {"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.spline.Spline5.ControlVector", "varType": "Tuple[float, float, float]", "importModule": "", "selfLabel": "controlVector", "selfType": "wpimath.spline.Spline5.ControlVector"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5.ControlVector", "VAR": "x"}, "inputs": {"VALUE": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.spline.Spline5.ControlVector", "varType": "Tuple[float, float, float]", "importModule": "", "selfLabel": "controlVector", "selfType": "wpimath.spline.Spline5.ControlVector"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5.ControlVector", "VAR": "y"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}},
- {"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.spline.Spline5.ControlVector", "varType": "Tuple[float, float, float]", "importModule": "", "selfLabel": "controlVector", "selfType": "wpimath.spline.Spline5.ControlVector"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5.ControlVector", "VAR": "y"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline._spline.Spline5.ControlVector", "args": [{"name": "x", "type": "Tuple[float, float, float]"}, {"name": "y", "type": "Tuple[float, float, float]"}], "tooltip": "", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5.ControlVector"}}}}},
+ {"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.spline.Spline5.ControlVector", "varType": "Tuple[float, float, float]", "importModule": "", "selfLabel": "controlVector", "selfType": "wpimath.spline.Spline5.ControlVector"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5.ControlVector", "VAR": "y"}, "inputs": {"VALUE": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline.Spline5.ControlVector", "args": [{"name": "x", "type": "Tuple[float, float, float]"}, {"name": "y", "type": "Tuple[float, float, float]"}], "tooltip": "", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5.ControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTuple"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.spline.Spline5.ts b/src/blocks/generated/class_wpimath.spline.Spline5.ts
index cc8ec60d..9ca0d3c2 100644
--- a/src/blocks/generated/class_wpimath.spline.Spline5.ts
+++ b/src/blocks/generated/class_wpimath.spline.Spline5.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySpline5"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline._spline.Spline5", "args": [], "tooltip": "", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[6, 6]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[6, 6]]", "args": [{"name": "spline5", "type": "wpimath.spline._spline.Spline5"}], "tooltip": "Returns the coefficients of the spline.\n\n:returns: The coefficients of the spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5", "FUNC": "coefficients"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline._spline.Spline5.ControlVector", "args": [{"name": "spline5", "type": "wpimath.spline._spline.Spline5"}], "tooltip": "Returns the final control vector that created this spline.\n\n:returns: The final control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5", "FUNC": "getFinalControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline._spline.Spline5.ControlVector", "args": [{"name": "spline5", "type": "wpimath.spline._spline.Spline5"}], "tooltip": "Returns the initial control vector that created this spline.\n\n:returns: The initial control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5", "FUNC": "getInitialControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myradians_per_meter]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "spline5", "type": "wpimath.spline._spline.Spline5"}, {"name": "t", "type": "float"}], "tooltip": "Gets the pose and curvature at some point t on the spline.\n\n:param t: The point t\n\n:returns: The pose and curvature at that point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5", "FUNC": "getPoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySpline5"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline.Spline5", "args": [], "tooltip": "", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[6, 6]]", "args": [{"name": "spline5", "type": "wpimath.spline.Spline5"}], "tooltip": "Returns the coefficients of the spline.\n\n:returns: The coefficients of the spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5", "FUNC": "coefficients"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline.Spline5.ControlVector", "args": [{"name": "spline5", "type": "wpimath.spline.Spline5"}], "tooltip": "Returns the final control vector that created this spline.\n\n:returns: The final control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5", "FUNC": "getFinalControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.spline.Spline5.ControlVector", "args": [{"name": "spline5", "type": "wpimath.spline.Spline5"}], "tooltip": "Returns the initial control vector that created this spline.\n\n:returns: The initial control vector that created this spline.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5", "FUNC": "getInitialControlVector"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "Optional[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "spline5", "type": "wpimath.spline.Spline5"}, {"name": "t", "type": "float"}], "tooltip": "Gets the pose and curvature at some point t on the spline.\n\n:param t: The point t\n\n:returns: The pose and curvature at that point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.Spline5", "FUNC": "getPoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.spline.SplineHelper.ts b/src/blocks/generated/class_wpimath.spline.SplineHelper.ts
index d23cdee1..c71bbea7 100644
--- a/src/blocks/generated/class_wpimath.spline.SplineHelper.ts
+++ b/src/blocks/generated/class_wpimath.spline.SplineHelper.ts
@@ -11,9 +11,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 6 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySplineHelper"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline._spline.SplineHelper", "args": [], "tooltip": "", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineHelper"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myControlVector]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.spline._spline.Spline3.ControlVector, wpimath.spline._spline.Spline3.ControlVector]", "args": [{"name": "start", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "interiorWaypoints", "type": "list[wpimath.geometry._geometry.Translation2d]"}, {"name": "end", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Returns 2 cubic control vectors from a set of exterior waypoints and\ninterior translations.\n\n:param start: The starting pose.\n:param interiorWaypoints: The interior waypoints.\n:param end: The ending pose.\n\n:returns: 2 cubic control vectors.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineHelper", "FUNC": "cubicControlVectorsFromWaypoints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[wpimath.spline._spline.CubicHermiteSpline]", "args": [{"name": "start", "type": "wpimath.spline._spline.Spline3.ControlVector"}, {"name": "waypoints", "type": "list[wpimath.geometry._geometry.Translation2d]"}, {"name": "end", "type": "wpimath.spline._spline.Spline3.ControlVector"}], "tooltip": "Returns a set of cubic splines corresponding to the provided control\nvectors. The user is free to set the direction of the start and end\npoint. The directions for the middle waypoints are determined\nautomatically to ensure continuous curvature throughout the path.\n\nThe derivation for the algorithm used can be found here:\n\n\n:param start: The starting control vector.\n:param waypoints: The middle waypoints. This can be left blank if you\n only wish to create a path with two waypoints.\n:param end: The ending control vector.\n\n:returns: A vector of cubic hermite splines that interpolate through the\n provided waypoints.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineHelper", "FUNC": "cubicSplinesFromControlVectors"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySplineHelper"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.spline.SplineHelper", "args": [], "tooltip": "", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineHelper"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "Tuple[wpimath.spline._spline.Spline3.ControlVector, wpimath.spline._spline.Spline3.ControlVector]", "args": [{"name": "start", "type": "wpimath.geometry.Pose2d"}, {"name": "interiorWaypoints", "type": "list[wpimath.geometry._geometry.Translation2d]"}, {"name": "end", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Returns 2 cubic control vectors from a set of exterior waypoints and\ninterior translations.\n\n:param start: The starting pose.\n:param interiorWaypoints: The interior waypoints.\n:param end: The ending pose.\n\n:returns: 2 cubic control vectors.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineHelper", "FUNC": "cubicControlVectorsFromWaypoints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[wpimath.spline._spline.CubicHermiteSpline]", "args": [{"name": "start", "type": "wpimath.spline.Spline3.ControlVector"}, {"name": "waypoints", "type": "list[wpimath.geometry._geometry.Translation2d]"}, {"name": "end", "type": "wpimath.spline.Spline3.ControlVector"}], "tooltip": "Returns a set of cubic splines corresponding to the provided control\nvectors. The user is free to set the direction of the start and end\npoint. The directions for the middle waypoints are determined\nautomatically to ensure continuous curvature throughout the path.\n\nThe derivation for the algorithm used can be found here:\n\n\n:param start: The starting control vector.\n:param waypoints: The middle waypoints. This can be left blank if you\n only wish to create a path with two waypoints.\n:param end: The ending control vector.\n\n:returns: A vector of cubic hermite splines that interpolate through the\n provided waypoints.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineHelper", "FUNC": "cubicSplinesFromControlVectors"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[wpimath.spline._spline.QuinticHermiteSpline]", "args": [{"name": "splines", "type": "list[wpimath.spline._spline.QuinticHermiteSpline]"}], "tooltip": "Optimizes the curvature of 2 or more quintic splines at knot points.\nOverall, this reduces the integral of the absolute value of the second\nderivative across the set of splines.\n\n:param splines: A vector of un-optimized quintic splines.\n\n:returns: A vector of optimized quintic splines.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineHelper", "FUNC": "optimizeCurvature"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[wpimath.spline._spline.QuinticHermiteSpline]", "args": [{"name": "controlVectors", "type": "list[wpimath.spline._spline.Spline5.ControlVector]"}], "tooltip": "Returns a set of quintic splines corresponding to the provided control\nvectors. The user is free to set the direction of all waypoints. Continuous\ncurvature is guaranteed throughout the path.\n\n:param controlVectors: The control vectors.\n\n:returns: A vector of quintic hermite splines that interpolate through the\n provided waypoints.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineHelper", "FUNC": "quinticSplinesFromControlVectors"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[wpimath.spline._spline.QuinticHermiteSpline]", "args": [{"name": "waypoints", "type": "list[wpimath.geometry._geometry.Pose2d]"}], "tooltip": "Returns quintic splines from a set of waypoints.\n\n:param waypoints: The waypoints\n\n:returns: List of quintic splines.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineHelper", "FUNC": "quinticSplinesFromWaypoints"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
diff --git a/src/blocks/generated/class_wpimath.spline.SplineParameterizer.ts b/src/blocks/generated/class_wpimath.spline.SplineParameterizer.ts
index 6642e059..ff462cb1 100644
--- a/src/blocks/generated/class_wpimath.spline.SplineParameterizer.ts
+++ b/src/blocks/generated/class_wpimath.spline.SplineParameterizer.ts
@@ -11,8 +11,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 2 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "spline", "type": "wpimath.spline._spline.Spline3"}, {"name": "t0", "type": "float"}, {"name": "t1", "type": "float"}], "tooltip": "Parametrizes the spline. This method breaks up the spline into various\narcs until their dx, dy, and dtheta are within specific tolerances.\n\n:param spline: The spline to parameterize.\n:param t0: Starting internal spline parameter. It is recommended to leave\n this as default.\n:param t1: Ending internal spline parameter. It is recommended to leave this\n as default.\n\n:returns: A vector of poses and curvatures that represents various points on\n the spline.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineParameterizer", "FUNC": "parameterize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "spline", "type": "wpimath.spline._spline.Spline5"}, {"name": "t0", "type": "float"}, {"name": "t1", "type": "float"}], "tooltip": "Parametrizes the spline. This method breaks up the spline into various\narcs until their dx, dy, and dtheta are within specific tolerances.\n\n:param spline: The spline to parameterize.\n:param t0: Starting internal spline parameter. It is recommended to leave\n this as default.\n:param t1: Ending internal spline parameter. It is recommended to leave this\n as default.\n\n:returns: A vector of poses and curvatures that represents various points on\n the spline.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineParameterizer", "FUNC": "parameterize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "spline", "type": "wpimath.spline.Spline3"}, {"name": "t0", "type": "float"}, {"name": "t1", "type": "float"}], "tooltip": "Parametrizes the spline. This method breaks up the spline into various\narcs until their dx, dy, and dtheta are within specific tolerances.\n\n:param spline: The spline to parameterize.\n:param t0: Starting internal spline parameter. It is recommended to leave\n this as default.\n:param t1: Ending internal spline parameter. It is recommended to leave this\n as default.\n\n:returns: A vector of poses and curvatures that represents various points on\n the spline.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineParameterizer", "FUNC": "parameterize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline3"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "spline", "type": "wpimath.spline.Spline5"}, {"name": "t0", "type": "float"}, {"name": "t1", "type": "float"}], "tooltip": "Parametrizes the spline. This method breaks up the spline into various\narcs until their dx, dy, and dtheta are within specific tolerances.\n\n:param spline: The spline to parameterize.\n:param t0: Starting internal spline parameter. It is recommended to leave\n this as default.\n:param t1: Ending internal spline parameter. It is recommended to leave this\n as default.\n\n:returns: A vector of poses and curvatures that represents various points on\n the spline.", "importModule": "wpimath.spline"}, "fields": {"MODULE_OR_CLASS": "wpimath.spline.SplineParameterizer", "FUNC": "parameterize"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySpline5"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystemLoop_1_1_1.ts b/src/blocks/generated/class_wpimath.system.LinearSystemLoop_1_1_1.ts
index 2ea6e377..f9c67712 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystemLoop_1_1_1.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystemLoop_1_1_1.ts
@@ -11,24 +11,24 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 18 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Commonly 12.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1", "args": [{"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}, {"name": "feedforward", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant inversion feedforward.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Assumes\n that the inputs are voltages.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1", "args": [{"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_1_1"}, {"name": "feedforward", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_1_1_1"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward,\nobserver and clamp function. By default, the initial reference is all\nzeros. Users should call reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant-inversion feedforward.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}], "tooltip": "Returns the controller's calculated control input u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's calculated control input u.\n\n:param i: Row of u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Clamps input vector between system's minimum and maximum allowable input.\n\n:param u: Input vector to clamp.\n\n:returns: Clamped input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "clampInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}], "tooltip": "Returns difference between reference r and current state x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "error"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}], "tooltip": "Returns the controller's next reference r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's next reference r.\n\n:param i: Row of r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Sets new controller output, projects model forward, and runs observer\nprediction.\n\nAfter calling this, the user should send the elements of u to the\nactuators.\n\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Zeroes reference r and controller output u. The previous reference\nof the PlantInversionFeedforward and the initial state estimate of\nthe KalmanFilter are set to the initial state provided.\n\n:param initialState: The initial state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Set the next reference r.\n\n:param nextR: Next reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "setNextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Set the initial state estimate x-hat.\n\n:param xHat: The initial state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}], "tooltip": "Returns the observer's state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_1_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the observer's state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_1_1_1", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_1_1_1"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Commonly 12.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_1_1_1", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_1_1_1"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_1_1_1", "args": [{"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}, {"name": "feedforward", "type": "wpimath.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_1_1_1"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant inversion feedforward.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Assumes\n that the inputs are voltages.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_1_1_1", "args": [{"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_1_1"}, {"name": "feedforward", "type": "wpimath.controller.LinearPlantInversionFeedforward_1_1"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_1_1_1"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward,\nobserver and clamp function. By default, the initial reference is all\nzeros. Users should call reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant-inversion feedforward.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_1_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_1_1_1"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}], "tooltip": "Returns the controller's calculated control input u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's calculated control input u.\n\n:param i: Row of u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Clamps input vector between system's minimum and maximum allowable input.\n\n:param u: Input vector to clamp.\n\n:returns: Clamped input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "clampInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}], "tooltip": "Returns difference between reference r and current state x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "error"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}], "tooltip": "Returns the controller's next reference r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's next reference r.\n\n:param i: Row of r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Sets new controller output, projects model forward, and runs observer\nprediction.\n\nAfter calling this, the user should send the elements of u to the\nactuators.\n\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Zeroes reference r and controller output u. The previous reference\nof the PlantInversionFeedforward and the initial state estimate of\nthe KalmanFilter are set to the initial state provided.\n\n:param initialState: The initial state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Set the next reference r.\n\n:param nextR: Next reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "setNextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Set the initial state estimate x-hat.\n\n:param xHat: The initial state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}], "tooltip": "Returns the observer's state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_1_1_1", "type": "wpimath.system.LinearSystemLoop_1_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the observer's state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_1_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_1_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystemLoop_2_1_1.ts b/src/blocks/generated/class_wpimath.system.LinearSystemLoop_2_1_1.ts
index ddc52d22..c1adee5a 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystemLoop_2_1_1.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystemLoop_2_1_1.ts
@@ -11,24 +11,24 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 18 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Commonly 12.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1", "args": [{"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}, {"name": "feedforward", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant inversion feedforward.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Assumes\n that the inputs are voltages.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1", "args": [{"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_1"}, {"name": "feedforward", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_1_1"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward,\nobserver and clamp function. By default, the initial reference is all\nzeros. Users should call reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant-inversion feedforward.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}], "tooltip": "Returns the controller's calculated control input u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's calculated control input u.\n\n:param i: Row of u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Clamps input vector between system's minimum and maximum allowable input.\n\n:param u: Input vector to clamp.\n\n:returns: Clamped input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "clampInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}], "tooltip": "Returns difference between reference r and current state x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "error"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}], "tooltip": "Returns the controller's next reference r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's next reference r.\n\n:param i: Row of r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Sets new controller output, projects model forward, and runs observer\nprediction.\n\nAfter calling this, the user should send the elements of u to the\nactuators.\n\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Zeroes reference r and controller output u. The previous reference\nof the PlantInversionFeedforward and the initial state estimate of\nthe KalmanFilter are set to the initial state provided.\n\n:param initialState: The initial state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set the next reference r.\n\n:param nextR: Next reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "setNextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set the initial state estimate x-hat.\n\n:param xHat: The initial state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}], "tooltip": "Returns the observer's state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the observer's state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_2_1_1", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_2_1_1"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Commonly 12.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_2_1_1", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_2_1_1"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_2_1_1", "args": [{"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}, {"name": "feedforward", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_2_1_1"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant inversion feedforward.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Assumes\n that the inputs are voltages.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_2_1_1", "args": [{"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_2_1"}, {"name": "feedforward", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_1"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_2_1_1"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[1, 1]]], numpy.ndarray[numpy.float64[1, 1]]]"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward,\nobserver and clamp function. By default, the initial reference is all\nzeros. Users should call reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant-inversion feedforward.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_1"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_1_1"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}], "tooltip": "Returns the controller's calculated control input u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's calculated control input u.\n\n:param i: Row of u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Clamps input vector between system's minimum and maximum allowable input.\n\n:param u: Input vector to clamp.\n\n:returns: Clamped input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "clampInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}], "tooltip": "Returns difference between reference r and current state x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "error"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}], "tooltip": "Returns the controller's next reference r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's next reference r.\n\n:param i: Row of r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Sets new controller output, projects model forward, and runs observer\nprediction.\n\nAfter calling this, the user should send the elements of u to the\nactuators.\n\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Zeroes reference r and controller output u. The previous reference\nof the PlantInversionFeedforward and the initial state estimate of\nthe KalmanFilter are set to the initial state provided.\n\n:param initialState: The initial state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set the next reference r.\n\n:param nextR: Next reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "setNextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set the initial state estimate x-hat.\n\n:param xHat: The initial state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}], "tooltip": "Returns the observer's state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_2_1_1", "type": "wpimath.system.LinearSystemLoop_2_1_1"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the observer's state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_1_1", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystemLoop_2_2_2.ts b/src/blocks/generated/class_wpimath.system.LinearSystemLoop_2_2_2.ts
index 45676613..4b40bd57 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystemLoop_2_2_2.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystemLoop_2_2_2.ts
@@ -11,24 +11,24 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 18 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Commonly 12.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2", "args": [{"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}, {"name": "feedforward", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant inversion feedforward.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Assumes\n that the inputs are voltages.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2", "args": [{"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_2_2"}, {"name": "feedforward", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_2_2_2"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward,\nobserver and clamp function. By default, the initial reference is all\nzeros. Users should call reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant-inversion feedforward.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}], "tooltip": "Returns the controller's calculated control input u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's calculated control input u.\n\n:param i: Row of u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Clamps input vector between system's minimum and maximum allowable input.\n\n:param u: Input vector to clamp.\n\n:returns: Clamped input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "clampInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}], "tooltip": "Returns difference between reference r and current state x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "error"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}], "tooltip": "Returns the controller's next reference r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's next reference r.\n\n:param i: Row of r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Sets new controller output, projects model forward, and runs observer\nprediction.\n\nAfter calling this, the user should send the elements of u to the\nactuators.\n\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Zeroes reference r and controller output u. The previous reference\nof the PlantInversionFeedforward and the initial state estimate of\nthe KalmanFilter are set to the initial state provided.\n\n:param initialState: The initial state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set the next reference r.\n\n:param nextR: Next reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "setNextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set the initial state estimate x-hat.\n\n:param xHat: The initial state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}], "tooltip": "Returns the observer's state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath._controls._controls.system.LinearSystemLoop_2_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the observer's state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_2_2_2", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_2_2_2"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Commonly 12.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_2_2_2", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_2_2_2"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_2_2_2", "args": [{"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}, {"name": "feedforward", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_2_2_2"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant inversion feedforward.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Assumes\n that the inputs are voltages.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_2_2_2", "args": [{"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_2_2"}, {"name": "feedforward", "type": "wpimath.controller.LinearPlantInversionFeedforward_2_2"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_2_2_2"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward,\nobserver and clamp function. By default, the initial reference is all\nzeros. Users should call reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant-inversion feedforward.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_2_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_2_2_2"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}], "tooltip": "Returns the controller's calculated control input u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's calculated control input u.\n\n:param i: Row of u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Clamps input vector between system's minimum and maximum allowable input.\n\n:param u: Input vector to clamp.\n\n:returns: Clamped input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "clampInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}], "tooltip": "Returns difference between reference r and current state x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "error"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}], "tooltip": "Returns the controller's next reference r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's next reference r.\n\n:param i: Row of r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Sets new controller output, projects model forward, and runs observer\nprediction.\n\nAfter calling this, the user should send the elements of u to the\nactuators.\n\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Zeroes reference r and controller output u. The previous reference\nof the PlantInversionFeedforward and the initial state estimate of\nthe KalmanFilter are set to the initial state provided.\n\n:param initialState: The initial state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set the next reference r.\n\n:param nextR: Next reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "setNextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Set the initial state estimate x-hat.\n\n:param xHat: The initial state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}], "tooltip": "Returns the observer's state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_2_2_2", "type": "wpimath.system.LinearSystemLoop_2_2_2"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the observer's state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_2_2_2", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_2_2_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystemLoop_3_2_3.ts b/src/blocks/generated/class_wpimath.system.LinearSystemLoop_3_2_3.ts
index 69f94152..75c0ac33 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystemLoop_3_2_3.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystemLoop_3_2_3.ts
@@ -11,24 +11,24 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 18 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}, {"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Commonly 12.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3", "args": [{"name": "plant", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}, {"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3", "args": [{"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}, {"name": "feedforward", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant inversion feedforward.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Assumes\n that the inputs are voltages.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3", "args": [{"name": "controller", "type": "wpimath._controls._controls.controller.LinearQuadraticRegulator_3_2"}, {"name": "feedforward", "type": "wpimath._controls._controls.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "observer", "type": "wpimath._controls._controls.estimator.KalmanFilter_3_2_3"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward,\nobserver and clamp function. By default, the initial reference is all\nzeros. Users should call reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant-inversion feedforward.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}], "tooltip": "Returns the controller's calculated control input u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's calculated control input u.\n\n:param i: Row of u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Clamps input vector between system's minimum and maximum allowable input.\n\n:param u: Input vector to clamp.\n\n:returns: Clamped input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "clampInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}], "tooltip": "Returns difference between reference r and current state x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "error"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}], "tooltip": "Returns the controller's next reference r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's next reference r.\n\n:param i: Row of r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Sets new controller output, projects model forward, and runs observer\nprediction.\n\nAfter calling this, the user should send the elements of u to the\nactuators.\n\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Zeroes reference r and controller output u. The previous reference\nof the PlantInversionFeedforward and the initial state estimate of\nthe KalmanFilter are set to the initial state provided.\n\n:param initialState: The initial state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Set the next reference r.\n\n:param nextR: Next reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "setNextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Set the initial state estimate x-hat.\n\n:param xHat: The initial state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}], "tooltip": "Returns the observer's state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath._controls._controls.system.LinearSystemLoop_3_2_3"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the observer's state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_3_2_3", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_3_2_3"}, {"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_3_2_3"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Commonly 12.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_3_2_3", "args": [{"name": "plant", "type": "wpimath.system.LinearSystem_3_2_3"}, {"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_3_2_3"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Constructs a state-space loop with the given plant, controller, and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state before enabling the loop. This\nconstructor assumes that the input(s) to this system are voltage.\n\n:param plant: State-space plant.\n:param controller: State-space controller.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.\n:param dt: The nominal timestep.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_3_2_3", "args": [{"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}, {"name": "feedforward", "type": "wpimath.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_3_2_3"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward and\nobserver. By default, the initial reference is all zeros. Users should\ncall reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant inversion feedforward.\n:param observer: State-space observer.\n:param maxVoltage: The maximum voltage that can be applied. Assumes\n that the inputs are voltages.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystemLoop_3_2_3", "args": [{"name": "controller", "type": "wpimath.controller.LinearQuadraticRegulator_3_2"}, {"name": "feedforward", "type": "wpimath.controller.LinearPlantInversionFeedforward_3_2"}, {"name": "observer", "type": "wpimath.estimator.KalmanFilter_3_2_3"}, {"name": "clampFunction", "type": "Callable[[numpy.ndarray[numpy.float64[2, 1]]], numpy.ndarray[numpy.float64[2, 1]]]"}], "tooltip": "Constructs a state-space loop with the given controller, feedforward,\nobserver and clamp function. By default, the initial reference is all\nzeros. Users should call reset with the initial system state.\n\n:param controller: State-space controller.\n:param feedforward: Plant-inversion feedforward.\n:param observer: State-space observer.\n:param clampFunction: The function used to clamp the input vector.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearQuadraticRegulator_3_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearPlantInversionFeedforward_3_2"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myKalmanFilter_3_2_3"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}], "tooltip": "Returns the controller's calculated control input u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's calculated control input u.\n\n:param i: Row of u.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "U"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}, {"name": "u", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Clamps input vector between system's minimum and maximum allowable input.\n\n:param u: Input vector to clamp.\n\n:returns: Clamped input vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "clampInput"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}, {"name": "y", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Correct the state estimate x-hat using the measurements in y.\n\n:param y: Measurement vector.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "correct"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}], "tooltip": "Returns difference between reference r and current state x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "error"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}], "tooltip": "Returns the controller's next reference r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the controller's next reference r.\n\n:param i: Row of r.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "nextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Sets new controller output, projects model forward, and runs observer\nprediction.\n\nAfter calling this, the user should send the elements of u to the\nactuators.\n\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "predict"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}, {"name": "initialState", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Zeroes reference r and controller output u. The previous reference\nof the PlantInversionFeedforward and the initial state estimate of\nthe KalmanFilter are set to the initial state provided.\n\n:param initialState: The initial state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "reset"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}, {"name": "nextR", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Set the next reference r.\n\n:param nextR: Next reference.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "setNextR"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}, {"name": "xHat", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Set the initial state estimate x-hat.\n\n:param xHat: The initial state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}, {"name": "i", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "Set an element of the initial state estimate x-hat.\n\n:param i: Row of x-hat.\n:param value: Value for element of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "setXhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}], "tooltip": "Returns the observer's state estimate x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystemLoop_3_2_3", "type": "wpimath.system.LinearSystemLoop_3_2_3"}, {"name": "i", "type": "int"}], "tooltip": "Returns an element of the observer's state estimate x-hat.\n\n:param i: Row of x-hat.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystemLoop_3_2_3", "FUNC": "xhat"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystemLoop_3_2_3"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystem_1_1_1.ts b/src/blocks/generated/class_wpimath.system.LinearSystem_1_1_1.ts
index 0825d383..cbf9a699 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystem_1_1_1.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystem_1_1_1.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystem_1_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath._controls._controls.system.LinearSystem_1_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystem_1_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath.system.LinearSystem_1_1_1"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath.system.LinearSystem_1_1_1"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath.system.LinearSystem_1_1_1"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath.system.LinearSystem_1_1_1"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_1", "type": "wpimath.system.LinearSystem_1_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_1", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystem_1_1_2.ts b/src/blocks/generated/class_wpimath.system.LinearSystem_1_1_2.ts
index 1bce77cb..7f596ea9 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystem_1_1_2.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystem_1_1_2.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystem_1_1_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath._controls._controls.system.LinearSystem_1_1_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystem_1_1_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath.system.LinearSystem_1_1_2"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath.system.LinearSystem_1_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath.system.LinearSystem_1_1_2"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath.system.LinearSystem_1_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath.system.LinearSystem_1_1_2"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath.system.LinearSystem_1_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath.system.LinearSystem_1_1_2"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath.system.LinearSystem_1_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath.system.LinearSystem_1_1_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_1_1_2", "type": "wpimath.system.LinearSystem_1_1_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_2", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystem_1_1_3.ts b/src/blocks/generated/class_wpimath.system.LinearSystem_1_1_3.ts
index d85ec4ff..c9c9e876 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystem_1_1_3.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystem_1_1_3.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystem_1_1_3", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath._controls._controls.system.LinearSystem_1_1_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystem_1_1_3", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath.system.LinearSystem_1_1_3"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath.system.LinearSystem_1_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath.system.LinearSystem_1_1_3"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath.system.LinearSystem_1_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath.system.LinearSystem_1_1_3"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath.system.LinearSystem_1_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath.system.LinearSystem_1_1_3"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath.system.LinearSystem_1_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath.system.LinearSystem_1_1_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_1_1_3", "type": "wpimath.system.LinearSystem_1_1_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_1_1_3", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_1_1_3"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystem_2_1_1.ts b/src/blocks/generated/class_wpimath.system.LinearSystem_2_1_1.ts
index 63c2b0ca..f275caee 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystem_2_1_1.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystem_2_1_1.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystem_2_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[1, 2]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 2]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 2]]", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath._controls._controls.system.LinearSystem_2_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystem_2_1_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[1, 2]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath.system.LinearSystem_2_1_1"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath.system.LinearSystem_2_1_1"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 2]]", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath.system.LinearSystem_2_1_1"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath.system.LinearSystem_2_1_1"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_2_1_1", "type": "wpimath.system.LinearSystem_2_1_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_1", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystem_2_1_2.ts b/src/blocks/generated/class_wpimath.system.LinearSystem_2_1_2.ts
index 31bdaeab..a8bf97b9 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystem_2_1_2.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystem_2_1_2.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystem_2_1_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath._controls._controls.system.LinearSystem_2_1_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystem_2_1_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath.system.LinearSystem_2_1_2"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath.system.LinearSystem_2_1_2"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath.system.LinearSystem_2_1_2"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath.system.LinearSystem_2_1_2"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_2", "type": "wpimath.system.LinearSystem_2_1_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_2", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystem_2_1_3.ts b/src/blocks/generated/class_wpimath.system.LinearSystem_2_1_3.ts
index a19cc7be..5827f3de 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystem_2_1_3.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystem_2_1_3.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystem_2_1_3", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath._controls._controls.system.LinearSystem_2_1_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystem_2_1_3", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath.system.LinearSystem_2_1_3"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath.system.LinearSystem_2_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath.system.LinearSystem_2_1_3"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath.system.LinearSystem_2_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath.system.LinearSystem_2_1_3"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath.system.LinearSystem_2_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath.system.LinearSystem_2_1_3"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath.system.LinearSystem_2_1_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath.system.LinearSystem_2_1_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_2_1_3", "type": "wpimath.system.LinearSystem_2_1_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[1, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_1_3", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_1_3"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystem_2_2_1.ts b/src/blocks/generated/class_wpimath.system.LinearSystem_2_2_1.ts
index 42ec946a..f97a8150 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystem_2_2_1.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystem_2_2_1.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystem_2_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[1, 2]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[1, 2]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 2]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 2]]", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 2]]", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath._controls._controls.system.LinearSystem_2_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystem_2_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[1, 2]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[1, 2]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath.system.LinearSystem_2_2_1"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath.system.LinearSystem_2_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath.system.LinearSystem_2_2_1"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath.system.LinearSystem_2_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 2]]", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath.system.LinearSystem_2_2_1"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath.system.LinearSystem_2_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 2]]", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath.system.LinearSystem_2_2_1"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath.system.LinearSystem_2_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath.system.LinearSystem_2_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_2_2_1", "type": "wpimath.system.LinearSystem_2_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_1", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystem_2_2_2.ts b/src/blocks/generated/class_wpimath.system.LinearSystem_2_2_2.ts
index 864af504..53da974c 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystem_2_2_2.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystem_2_2_2.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystem_2_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath._controls._controls.system.LinearSystem_2_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystem_2_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath.system.LinearSystem_2_2_2"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath.system.LinearSystem_2_2_2"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath.system.LinearSystem_2_2_2"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath.system.LinearSystem_2_2_2"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_2_2", "type": "wpimath.system.LinearSystem_2_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_2", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystem_2_2_3.ts b/src/blocks/generated/class_wpimath.system.LinearSystem_2_2_3.ts
index ff484426..6afd85bd 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystem_2_2_3.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystem_2_2_3.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystem_2_2_3", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[3, 2]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath._controls._controls.system.LinearSystem_2_2_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystem_2_2_3", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[2, 2]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[3, 2]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath.system.LinearSystem_2_2_3"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath.system.LinearSystem_2_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath.system.LinearSystem_2_2_3"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath.system.LinearSystem_2_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath.system.LinearSystem_2_2_3"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath.system.LinearSystem_2_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath.system.LinearSystem_2_2_3"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath.system.LinearSystem_2_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath.system.LinearSystem_2_2_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_2_2_3", "type": "wpimath.system.LinearSystem_2_2_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_2_2_3", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_2_2_3"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystem_3_2_1.ts b/src/blocks/generated/class_wpimath.system.LinearSystem_3_2_1.ts
index a0afd414..50a405d4 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystem_3_2_1.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystem_3_2_1.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystem_3_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[1, 3]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[1, 2]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 3]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[1, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath._controls._controls.system.LinearSystem_3_2_1"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath._controls._controls.system.LinearSystem_3_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath._controls._controls.system.LinearSystem_3_2_1"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath._controls._controls.system.LinearSystem_3_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 3]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 3]]", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath._controls._controls.system.LinearSystem_3_2_1"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath._controls._controls.system.LinearSystem_3_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 2]]", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath._controls._controls.system.LinearSystem_3_2_1"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath._controls._controls.system.LinearSystem_3_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath._controls._controls.system.LinearSystem_3_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[1, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath._controls._controls.system.LinearSystem_3_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystem_3_2_1", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[1, 3]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[1, 2]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath.system.LinearSystem_3_2_1"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath.system.LinearSystem_3_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath.system.LinearSystem_3_2_1"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath.system.LinearSystem_3_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 3]]", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath.system.LinearSystem_3_2_1"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath.system.LinearSystem_3_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 2]]", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath.system.LinearSystem_3_2_1"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath.system.LinearSystem_3_2_1"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath.system.LinearSystem_3_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[1, 1]]", "args": [{"name": "linearSystem_3_2_1", "type": "wpimath.system.LinearSystem_3_2_1"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_1", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_1"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystem_3_2_2.ts b/src/blocks/generated/class_wpimath.system.LinearSystem_3_2_2.ts
index 16af27e3..10839f3b 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystem_3_2_2.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystem_3_2_2.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystem_3_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[2, 3]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 3]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath._controls._controls.system.LinearSystem_3_2_2"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath._controls._controls.system.LinearSystem_3_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath._controls._controls.system.LinearSystem_3_2_2"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath._controls._controls.system.LinearSystem_3_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 3]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 3]]", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath._controls._controls.system.LinearSystem_3_2_2"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath._controls._controls.system.LinearSystem_3_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath._controls._controls.system.LinearSystem_3_2_2"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath._controls._controls.system.LinearSystem_3_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath._controls._controls.system.LinearSystem_3_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath._controls._controls.system.LinearSystem_3_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystem_3_2_2", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[2, 3]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[2, 2]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath.system.LinearSystem_3_2_2"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath.system.LinearSystem_3_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath.system.LinearSystem_3_2_2"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath.system.LinearSystem_3_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 3]]", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath.system.LinearSystem_3_2_2"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath.system.LinearSystem_3_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 2]]", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath.system.LinearSystem_3_2_2"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath.system.LinearSystem_3_2_2"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath.system.LinearSystem_3_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[2, 1]]", "args": [{"name": "linearSystem_3_2_2", "type": "wpimath.system.LinearSystem_3_2_2"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_2", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_2"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.LinearSystem_3_2_3.ts b/src/blocks/generated/class_wpimath.system.LinearSystem_3_2_3.ts
index daae6299..e6ec5df1 100644
--- a/src/blocks/generated/class_wpimath.system.LinearSystem_3_2_3.ts
+++ b/src/blocks/generated/class_wpimath.system.LinearSystem_3_2_3.ts
@@ -11,17 +11,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 11 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.system.LinearSystem_3_2_3", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[3, 2]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 2]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath._controls._controls.system.LinearSystem_3_2_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[2, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.LinearSystem_3_2_3", "args": [{"name": "A", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "B", "type": "numpy.ndarray[numpy.float64[3, 2]]"}, {"name": "C", "type": "numpy.ndarray[numpy.float64[3, 3]]"}, {"name": "D", "type": "numpy.ndarray[numpy.float64[3, 2]]"}], "tooltip": "Constructs a discrete plant with the given continuous system coefficients.\n\n:param A: System matrix.\n:param B: Input matrix.\n:param C: Output matrix.\n:param D: Feedthrough matrix.\n @throws std::domain_error if any matrix element isn't finite.", "importModule": "wpimath.system"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath.system.LinearSystem_3_2_3"}], "tooltip": "Returns the system matrix A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath.system.LinearSystem_3_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the system matrix A.\n\n:param i: Row of A.\n:param j: Column of A.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "A"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath.system.LinearSystem_3_2_3"}], "tooltip": "Returns the input matrix B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath.system.LinearSystem_3_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the input matrix B.\n\n:param i: Row of B.\n:param j: Column of B.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "B"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath.system.LinearSystem_3_2_3"}], "tooltip": "Returns the output matrix C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath.system.LinearSystem_3_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the output matrix C.\n\n:param i: Row of C.\n:param j: Column of C.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 2]]", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath.system.LinearSystem_3_2_3"}], "tooltip": "Returns the feedthrough matrix D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "float", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath.system.LinearSystem_3_2_3"}, {"name": "i", "type": "int"}, {"name": "j", "type": "int"}], "tooltip": "Returns an element of the feedthrough matrix D.\n\n:param i: Row of D.\n:param j: Column of D.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "D"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath.system.LinearSystem_3_2_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}, {"name": "dt", "type": "wpimath.units.seconds"}], "tooltip": "Computes the new x given the old x and the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.\n:param dt: Timestep for model update.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "calculateX"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "numpy.ndarray[numpy.float64[3, 1]]", "args": [{"name": "linearSystem_3_2_3", "type": "wpimath.system.LinearSystem_3_2_3"}, {"name": "x", "type": "numpy.ndarray[numpy.float64[3, 1]]"}, {"name": "clampedU", "type": "numpy.ndarray[numpy.float64[2, 1]]"}], "tooltip": "Computes the new y given the control input.\n\nThis is used by state observers directly to run updates based on state\nestimate.\n\n:param x: The current state.\n:param clampedU: The control input.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.LinearSystem_3_2_3", "FUNC": "calculateY"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myLinearSystem_3_2_3"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.plant.DCMotor.ts b/src/blocks/generated/class_wpimath.system.plant.DCMotor.ts
index b7258dbf..c34bfaaa 100644
--- a/src/blocks/generated/class_wpimath.system.plant.DCMotor.ts
+++ b/src/blocks/generated/class_wpimath.system.plant.DCMotor.ts
@@ -27,29 +27,29 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.system.plant.DCMotor", "varType": "wpimath.units.radians_per_second", "importModule": "", "selfLabel": "dCMotor", "selfType": "wpimath.system.plant.DCMotor"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "VAR": "freeSpeed"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.system.plant.DCMotor", "varType": "wpimath.units.volts", "importModule": "", "selfLabel": "dCMotor", "selfType": "wpimath.system.plant.DCMotor"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "VAR": "nominalVoltage"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.system.plant.DCMotor", "varType": "wpimath.units.newton_meters", "importModule": "", "selfLabel": "dCMotor", "selfType": "wpimath.system.plant.DCMotor"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "VAR": "stallTorque"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "nominalVoltage", "type": "wpimath.units.volts"}, {"name": "stallTorque", "type": "wpimath.units.newton_meters"}, {"name": "stallCurrent", "type": "wpimath.units.amperes"}, {"name": "freeCurrent", "type": "wpimath.units.amperes"}, {"name": "freeSpeed", "type": "wpimath.units.radians_per_second"}, {"name": "numMotors", "type": "int"}], "tooltip": "Constructs a DC motor.\n\n:param nominalVoltage: Voltage at which the motor constants were measured.\n:param stallTorque: Torque when stalled.\n:param stallCurrent: Current draw when stalled.\n:param freeCurrent: Current draw under no load.\n:param freeSpeed: Angular velocity under no load.\n:param numMotors: Number of motors in a gearbox.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor"}, "inputs": {"ARG5": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of CIM motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "CIM"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of NEO brushless motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "NEO"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of NEO 550 brushless motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "NEO550"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Andymark RS 775-125 motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "RS775_125"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Andymark 9015 motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "andymark9015"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Bag motor motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "bag"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Banebots RS 550 motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "banebotsRS550"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Banebots RS 775 motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "banebotsRS775"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "dCMotor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "speed", "type": "wpimath.units.radians_per_second"}, {"name": "inputVoltage", "type": "wpimath.units.volts"}], "tooltip": "Returns current drawn by motor with given speed and input voltage.\n\n:param speed: The current angular velocity of the motor.\n:param inputVoltage: The voltage being applied to the motor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "current"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "dCMotor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "torque", "type": "wpimath.units.newton_meters"}], "tooltip": "Returns current drawn by motor for a given torque.\n\n:param torque: The torque produced by the motor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "current"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Falcon 500 brushless motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "falcon500"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Return a gearbox of Falcon 500 motors with FOC (Field-Oriented Control)\nenabled.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "falcon500FOC"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Return a gearbox of Kraken X60 brushless motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "krakenX60"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Return a gearbox of Kraken X60 brushless motors with FOC (Field-Oriented\nControl) enabled.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "krakenX60FOC"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of MiniCIM motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "miniCIM"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Return a gearbox of Neo Vortex brushless motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "neoVortex"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Return a gearbox of Romi/TI_RSLK MAX motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "romiBuiltIn"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "dCMotor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "torque", "type": "wpimath.units.newton_meters"}, {"name": "inputVoltage", "type": "wpimath.units.volts"}], "tooltip": "Returns the angular speed produced by the motor at a given torque and input\nvoltage.\n\n:param torque: The torque produced by the motor.\n:param inputVoltage: The input voltage provided to the motor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "speed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.newton_meters", "args": [{"name": "dCMotor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "current", "type": "wpimath.units.amperes"}], "tooltip": "Returns torque produced by the motor with a given current.\n\n:param current: The current drawn by the motor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "torque"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Vex 775 Pro motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "vex775Pro"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "dCMotor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "torque", "type": "wpimath.units.newton_meters"}, {"name": "speed", "type": "wpimath.units.radians_per_second"}], "tooltip": "Returns the voltage provided to the motor for a given torque and\nangular velocity.\n\n:param torque: The torque produced by the motor.\n:param speed: The current angular velocity of the motor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "voltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.plant.DCMotor", "args": [{"name": "dCMotor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "gearboxReduction", "type": "float"}], "tooltip": "Returns a copy of this motor with the given gearbox reduction applied.\n\n:param gearboxReduction: The gearbox reduction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "withReduction"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "nominalVoltage", "type": "wpimath.units.volts"}, {"name": "stallTorque", "type": "wpimath.units.newton_meters"}, {"name": "stallCurrent", "type": "wpimath.units.amperes"}, {"name": "freeCurrent", "type": "wpimath.units.amperes"}, {"name": "freeSpeed", "type": "wpimath.units.radians_per_second"}, {"name": "numMotors", "type": "int"}], "tooltip": "Constructs a DC motor.\n\n:param nominalVoltage: Voltage at which the motor constants were measured.\n:param stallTorque: Torque when stalled.\n:param stallCurrent: Current draw when stalled.\n:param freeCurrent: Current draw under no load.\n:param freeSpeed: Angular velocity under no load.\n:param numMotors: Number of motors in a gearbox.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor"}, "inputs": {"ARG5": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of CIM motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "CIM"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of NEO brushless motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "NEO"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of NEO 550 brushless motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "NEO550"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Andymark RS 775-125 motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "RS775_125"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Andymark 9015 motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "andymark9015"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Bag motor motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "bag"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Banebots RS 550 motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "banebotsRS550"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Banebots RS 775 motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "banebotsRS775"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "dCMotor", "type": "wpimath.system.plant.DCMotor"}, {"name": "speed", "type": "wpimath.units.radians_per_second"}, {"name": "inputVoltage", "type": "wpimath.units.volts"}], "tooltip": "Returns current drawn by motor with given speed and input voltage.\n\n:param speed: The current angular velocity of the motor.\n:param inputVoltage: The voltage being applied to the motor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "current"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.amperes", "args": [{"name": "dCMotor", "type": "wpimath.system.plant.DCMotor"}, {"name": "torque", "type": "wpimath.units.newton_meters"}], "tooltip": "Returns current drawn by motor for a given torque.\n\n:param torque: The torque produced by the motor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "current"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Falcon 500 brushless motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "falcon500"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Return a gearbox of Falcon 500 motors with FOC (Field-Oriented Control)\nenabled.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "falcon500FOC"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Return a gearbox of Kraken X60 brushless motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "krakenX60"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Return a gearbox of Kraken X60 brushless motors with FOC (Field-Oriented\nControl) enabled.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "krakenX60FOC"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of MiniCIM motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "miniCIM"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Return a gearbox of Neo Vortex brushless motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "neoVortex"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Return a gearbox of Romi/TI_RSLK MAX motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "romiBuiltIn"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.radians_per_second", "args": [{"name": "dCMotor", "type": "wpimath.system.plant.DCMotor"}, {"name": "torque", "type": "wpimath.units.newton_meters"}, {"name": "inputVoltage", "type": "wpimath.units.volts"}], "tooltip": "Returns the angular speed produced by the motor at a given torque and input\nvoltage.\n\n:param torque: The torque produced by the motor.\n:param inputVoltage: The input voltage provided to the motor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "speed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.newton_meters", "args": [{"name": "dCMotor", "type": "wpimath.system.plant.DCMotor"}, {"name": "current", "type": "wpimath.units.amperes"}], "tooltip": "Returns torque produced by the motor with a given current.\n\n:param current: The current drawn by the motor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "torque"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "numMotors", "type": "int"}], "tooltip": "Returns a gearbox of Vex 775 Pro motors.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "vex775Pro"}, "inputs": {"ARG0": {"shadow": {"type": "math_number", "fields": {"NUM": 1.0}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.volts", "args": [{"name": "dCMotor", "type": "wpimath.system.plant.DCMotor"}, {"name": "torque", "type": "wpimath.units.newton_meters"}, {"name": "speed", "type": "wpimath.units.radians_per_second"}], "tooltip": "Returns the voltage provided to the motor for a given torque and\nangular velocity.\n\n:param torque: The torque produced by the motor.\n:param speed: The current angular velocity of the motor.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "voltage"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDCMotor"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.system.plant.DCMotor", "args": [{"name": "dCMotor", "type": "wpimath.system.plant.DCMotor"}, {"name": "gearboxReduction", "type": "float"}], "tooltip": "Returns a copy of this motor with the given gearbox reduction applied.\n\n:param gearboxReduction: The gearbox reduction.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.DCMotor", "FUNC": "withReduction"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.system.plant.LinearSystemId.ts b/src/blocks/generated/class_wpimath.system.plant.LinearSystemId.ts
index e1d75697..6c3d2c39 100644
--- a/src/blocks/generated/class_wpimath.system.plant.LinearSystemId.ts
+++ b/src/blocks/generated/class_wpimath.system.plant.LinearSystemId.ts
@@ -11,20 +11,20 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 14 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemId"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.plant.LinearSystemId", "args": [], "tooltip": "", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_2_1_2", "args": [{"name": "motor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "J", "type": "wpimath.units.kilogram_square_meters"}, {"name": "gearing", "type": "float"}], "tooltip": "Create a state-space model of a DC motor system. The states of the system\nare [angular position, angular velocity], inputs are [voltage], and outputs\nare [angular position, angular velocity].\n\n:param motor: The motor (or gearbox) attached to the system.\n:param J: the moment of inertia J of the DC motor.\n:param gearing: Gear ratio from motor to output.\n @throws std::domain_error if J <= 0 or gearing <= 0.\n @see https://github.com/wpilibsuite/sysid", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "DCMotorSystem"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_2_1_2", "args": [{"name": "kV", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_meter"}], "tooltip": "Create a state-space model of a DC motor system from its kV\n(volts/(unit/sec)) and kA (volts/(unit/sec\u00b2)). These constants can be\nfound using SysId. the states of the system are [position, velocity],\ninputs are [voltage], and outputs are [position].\n\nYou MUST use an SI unit (i.e. meters or radians) for the Distance template\nargument. You may still use non-SI units (such as feet or inches) for the\nactual method arguments; they will automatically be converted to SI\ninternally.\n\nThe parameters provided by the user are from this feedforward model:\n\nu = K_v v + K_a a\n\n@throws std::domain_error if kV < 0 or kA <= 0.\n\n:param kV: The velocity gain, in volts/(unit/sec).\n:param kA: The acceleration gain, in volts/(unit/sec\u00b2).", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "DCMotorSystem"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_2_1_2", "args": [{"name": "kV", "type": "wpimath.units.volt_seconds_per_radian"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_radian"}], "tooltip": "", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "DCMotorSystemRadians"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_2_2_2", "args": [{"name": "motor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "mass", "type": "wpimath.units.kilograms"}, {"name": "r", "type": "wpimath.units.meters"}, {"name": "rb", "type": "wpimath.units.meters"}, {"name": "J", "type": "wpimath.units.kilogram_square_meters"}, {"name": "gearing", "type": "float"}], "tooltip": "Create a state-space model of differential drive drivetrain. In this model,\nthe states are [left velocity, right velocity], the inputs are [left\nvoltage, right voltage], and the outputs are [left velocity, right\nvelocity]\n\n:param motor: The motor (or gearbox) driving the drivetrain.\n:param mass: The mass of the robot in kilograms.\n:param r: The radius of the wheels in meters.\n:param rb: The radius of the base (half of the track width), in meters.\n:param J: The moment of inertia of the robot.\n:param gearing: Gear ratio from motor to wheel.\n @throws std::domain_error if mass <= 0, r <= 0, rb <= 0, J <= 0, or\n gearing <= 0.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "drivetrainVelocitySystem"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_2_1_2", "args": [{"name": "motor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "mass", "type": "wpimath.units.kilograms"}, {"name": "radius", "type": "wpimath.units.meters"}, {"name": "gearing", "type": "float"}], "tooltip": "Create a state-space model of the elevator system. The states of the system\nare [position, velocity], inputs are [voltage], and outputs are [position].\n\n:param motor: The motor (or gearbox) attached to the carriage.\n:param mass: The mass of the elevator carriage, in kilograms.\n:param radius: The radius of the elevator's driving drum, in meters.\n:param gearing: Gear ratio from motor to carriage.\n @throws std::domain_error if mass <= 0, radius <= 0, or gearing <= 0.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "elevatorSystem"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_1_1_1", "args": [{"name": "motor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "J", "type": "wpimath.units.kilogram_square_meters"}, {"name": "gearing", "type": "float"}], "tooltip": "Create a state-space model of a flywheel system, the states of the system\nare [angular velocity], inputs are [voltage], and outputs are [angular\nvelocity].\n\n:param motor: The motor (or gearbox) attached to the flywheel.\n:param J: The moment of inertia J of the flywheel.\n:param gearing: Gear ratio from motor to flywheel.\n @throws std::domain_error if J <= 0 or gearing <= 0.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "flywheelSystem"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_2_2_2", "args": [{"name": "kVLinear", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kALinear", "type": "wpimath.units.volt_seconds_squared_per_meter"}, {"name": "kVAngular", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kAAngular", "type": "wpimath.units.volt_seconds_squared_per_meter"}], "tooltip": "Identify a differential drive drivetrain given the drivetrain's kV and kA\nin both linear {(volts/(meter/sec), (volts/(meter/sec\u00b2))} and angular\n{(volts/(radian/sec), (volts/(radian/sec\u00b2))} cases. These constants can be\nfound using SysId.\n\nStates: [[left velocity], [right velocity]]\nInputs: [[left voltage], [right voltage]]\nOutputs: [[left velocity], [right velocity]]\n\n:param kVLinear: The linear velocity gain in volts per (meters per second).\n:param kALinear: The linear acceleration gain in volts per (meters per\n second squared).\n:param kVAngular: The angular velocity gain in volts per (meters per\n second).\n:param kAAngular: The angular acceleration gain in volts per (meters per\n second squared).\n @throws domain_error if kVLinear <= 0, kALinear <= 0, kVAngular <= 0,\n or kAAngular <= 0.\n @see https://github.com/wpilibsuite/sysid", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "identifyDrivetrainSystem"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_2_2_2", "args": [{"name": "kVLinear", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kALinear", "type": "wpimath.units.volt_seconds_squared_per_meter"}, {"name": "kVAngular", "type": "wpimath.units.volt_seconds_per_radian"}, {"name": "kAAngular", "type": "wpimath.units.volt_seconds_squared_per_radian"}, {"name": "trackwidth", "type": "wpimath.units.meters"}], "tooltip": "Identify a differential drive drivetrain given the drivetrain's kV and kA\nin both linear {(volts/(meter/sec)), (volts/(meter/sec\u00b2))} and angular\n{(volts/(radian/sec)), (volts/(radian/sec\u00b2))} cases. This can be found\nusing SysId.\n\nStates: [[left velocity], [right velocity]]\nInputs: [[left voltage], [right voltage]]\nOutputs: [[left velocity], [right velocity]]\n\n:param kVLinear: The linear velocity gain in volts per (meters per\n second).\n:param kALinear: The linear acceleration gain in volts per (meters per\n second squared).\n:param kVAngular: The angular velocity gain in volts per (radians per\n second).\n:param kAAngular: The angular acceleration gain in volts per (radians per\n second squared).\n:param trackwidth: The distance between the differential drive's left and\n right wheels, in meters.\n @throws domain_error if kVLinear <= 0, kALinear <= 0, kVAngular <= 0,\n kAAngular <= 0, or trackwidth <= 0.\n @see https://github.com/wpilibsuite/sysid", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "identifyDrivetrainSystem"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_2_1_1", "args": [{"name": "kV", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_meter"}], "tooltip": "Create a state-space model for a 1 DOF position system from its kV\n(volts/(unit/sec)) and kA (volts/(unit/sec\u00b2)). These constants can be\nfound using SysId. the states of the system are [position, velocity],\ninputs are [voltage], and outputs are [position].\n\nYou MUST use an SI unit (i.e. meters or radians) for the Distance template\nargument. You may still use non-SI units (such as feet or inches) for the\nactual method arguments; they will automatically be converted to SI\ninternally.\n\nThe parameters provided by the user are from this feedforward model:\n\nu = K_v v + K_a a\n\n@throws std::domain_error if kV < 0 or kA <= 0.\n@see https://github.com/wpilibsuite/sysid\n\n:param kV: The velocity gain, in volts/(unit/sec).\n:param kA: The acceleration gain, in volts/(unit/sec\u00b2).", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "identifyPositionSystemMeters"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_2_1_1", "args": [{"name": "kV", "type": "wpimath.units.volt_seconds_per_radian"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_radian"}], "tooltip": "", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "identifyPositionSystemRadians"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_1_1_1", "args": [{"name": "kV", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_meter"}], "tooltip": "Create a state-space model for a 1 DOF velocity system from its kV\n(volts/(unit/sec)) and kA (volts/(unit/sec\u00b2)). These constants can be\nfound using SysId. The states of the system are [velocity], inputs are\n[voltage], and outputs are [velocity].\n\nYou MUST use an SI unit (i.e. meters or radians) for the Distance template\nargument. You may still use non-SI units (such as feet or inches) for the\nactual method arguments; they will automatically be converted to SI\ninternally.\n\nThe parameters provided by the user are from this feedforward model:\n\nu = K_v v + K_a a\n\n:param kV: The velocity gain, in volts/(unit/sec).\n:param kA: The acceleration gain, in volts/(unit/sec\u00b2).\n @throws std::domain_error if kV < 0 or kA <= 0.\n @see https://github.com/wpilibsuite/sysid", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "identifyVelocitySystemMeters"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_1_1_1", "args": [{"name": "kV", "type": "wpimath.units.volt_seconds_per_radian"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_radian"}], "tooltip": "", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "identifyVelocitySystemRadians"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.system.LinearSystem_2_1_2", "args": [{"name": "motor", "type": "wpimath._controls._controls.plant.DCMotor"}, {"name": "J", "type": "wpimath.units.kilogram_square_meters"}, {"name": "gearing", "type": "float"}], "tooltip": "Create a state-space model of a single-jointed arm system.The states of the\nsystem are [angle, angular velocity], inputs are [voltage], and outputs are\n[angle].\n\n:param motor: The motor (or gearbox) attached to the arm.\n:param J: The moment of inertia J of the arm.\n:param gearing: Gear ratio from motor to arm.\n @throws std::domain_error if J <= 0 or gearing <= 0.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "singleJointedArmSystem"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystemId"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.system.plant.LinearSystemId", "args": [], "tooltip": "", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_2_1_2", "args": [{"name": "motor", "type": "wpimath.system.plant.DCMotor"}, {"name": "J", "type": "wpimath.units.kilogram_square_meters"}, {"name": "gearing", "type": "float"}], "tooltip": "Create a state-space model of a DC motor system. The states of the system\nare [angular position, angular velocity], inputs are [voltage], and outputs\nare [angular position, angular velocity].\n\n:param motor: The motor (or gearbox) attached to the system.\n:param J: the moment of inertia J of the DC motor.\n:param gearing: Gear ratio from motor to output.\n @throws std::domain_error if J <= 0 or gearing <= 0.\n @see https://github.com/wpilibsuite/sysid", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "DCMotorSystem"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_2_1_2", "args": [{"name": "kV", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_meter"}], "tooltip": "Create a state-space model of a DC motor system from its kV\n(volts/(unit/sec)) and kA (volts/(unit/sec\u00b2)). These constants can be\nfound using SysId. the states of the system are [position, velocity],\ninputs are [voltage], and outputs are [position].\n\nYou MUST use an SI unit (i.e. meters or radians) for the Distance template\nargument. You may still use non-SI units (such as feet or inches) for the\nactual method arguments; they will automatically be converted to SI\ninternally.\n\nThe parameters provided by the user are from this feedforward model:\n\nu = K_v v + K_a a\n\n@throws std::domain_error if kV < 0 or kA <= 0.\n\n:param kV: The velocity gain, in volts/(unit/sec).\n:param kA: The acceleration gain, in volts/(unit/sec\u00b2).", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "DCMotorSystem"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_2_1_2", "args": [{"name": "kV", "type": "wpimath.units.volt_seconds_per_radian"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_radian"}], "tooltip": "", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "DCMotorSystemRadians"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_2_2_2", "args": [{"name": "motor", "type": "wpimath.system.plant.DCMotor"}, {"name": "mass", "type": "wpimath.units.kilograms"}, {"name": "r", "type": "wpimath.units.meters"}, {"name": "rb", "type": "wpimath.units.meters"}, {"name": "J", "type": "wpimath.units.kilogram_square_meters"}, {"name": "gearing", "type": "float"}], "tooltip": "Create a state-space model of differential drive drivetrain. In this model,\nthe states are [left velocity, right velocity], the inputs are [left\nvoltage, right voltage], and the outputs are [left velocity, right\nvelocity]\n\n:param motor: The motor (or gearbox) driving the drivetrain.\n:param mass: The mass of the robot in kilograms.\n:param r: The radius of the wheels in meters.\n:param rb: The radius of the base (half of the track width), in meters.\n:param J: The moment of inertia of the robot.\n:param gearing: Gear ratio from motor to wheel.\n @throws std::domain_error if mass <= 0, r <= 0, rb <= 0, J <= 0, or\n gearing <= 0.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "drivetrainVelocitySystem"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_2_1_2", "args": [{"name": "motor", "type": "wpimath.system.plant.DCMotor"}, {"name": "mass", "type": "wpimath.units.kilograms"}, {"name": "radius", "type": "wpimath.units.meters"}, {"name": "gearing", "type": "float"}], "tooltip": "Create a state-space model of the elevator system. The states of the system\nare [position, velocity], inputs are [voltage], and outputs are [position].\n\n:param motor: The motor (or gearbox) attached to the carriage.\n:param mass: The mass of the elevator carriage, in kilograms.\n:param radius: The radius of the elevator's driving drum, in meters.\n:param gearing: Gear ratio from motor to carriage.\n @throws std::domain_error if mass <= 0, radius <= 0, or gearing <= 0.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "elevatorSystem"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_1_1_1", "args": [{"name": "motor", "type": "wpimath.system.plant.DCMotor"}, {"name": "J", "type": "wpimath.units.kilogram_square_meters"}, {"name": "gearing", "type": "float"}], "tooltip": "Create a state-space model of a flywheel system, the states of the system\nare [angular velocity], inputs are [voltage], and outputs are [angular\nvelocity].\n\n:param motor: The motor (or gearbox) attached to the flywheel.\n:param J: The moment of inertia J of the flywheel.\n:param gearing: Gear ratio from motor to flywheel.\n @throws std::domain_error if J <= 0 or gearing <= 0.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "flywheelSystem"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_2_2_2", "args": [{"name": "kVLinear", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kALinear", "type": "wpimath.units.volt_seconds_squared_per_meter"}, {"name": "kVAngular", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kAAngular", "type": "wpimath.units.volt_seconds_squared_per_meter"}], "tooltip": "Identify a differential drive drivetrain given the drivetrain's kV and kA\nin both linear {(volts/(meter/sec), (volts/(meter/sec\u00b2))} and angular\n{(volts/(radian/sec), (volts/(radian/sec\u00b2))} cases. These constants can be\nfound using SysId.\n\nStates: [[left velocity], [right velocity]]\nInputs: [[left voltage], [right voltage]]\nOutputs: [[left velocity], [right velocity]]\n\n:param kVLinear: The linear velocity gain in volts per (meters per second).\n:param kALinear: The linear acceleration gain in volts per (meters per\n second squared).\n:param kVAngular: The angular velocity gain in volts per (meters per\n second).\n:param kAAngular: The angular acceleration gain in volts per (meters per\n second squared).\n @throws domain_error if kVLinear <= 0, kALinear <= 0, kVAngular <= 0,\n or kAAngular <= 0.\n @see https://github.com/wpilibsuite/sysid", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "identifyDrivetrainSystem"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_2_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_2_2_2", "args": [{"name": "kVLinear", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kALinear", "type": "wpimath.units.volt_seconds_squared_per_meter"}, {"name": "kVAngular", "type": "wpimath.units.volt_seconds_per_radian"}, {"name": "kAAngular", "type": "wpimath.units.volt_seconds_squared_per_radian"}, {"name": "trackwidth", "type": "wpimath.units.meters"}], "tooltip": "Identify a differential drive drivetrain given the drivetrain's kV and kA\nin both linear {(volts/(meter/sec)), (volts/(meter/sec\u00b2))} and angular\n{(volts/(radian/sec)), (volts/(radian/sec\u00b2))} cases. This can be found\nusing SysId.\n\nStates: [[left velocity], [right velocity]]\nInputs: [[left voltage], [right voltage]]\nOutputs: [[left velocity], [right velocity]]\n\n:param kVLinear: The linear velocity gain in volts per (meters per\n second).\n:param kALinear: The linear acceleration gain in volts per (meters per\n second squared).\n:param kVAngular: The angular velocity gain in volts per (radians per\n second).\n:param kAAngular: The angular acceleration gain in volts per (radians per\n second squared).\n:param trackwidth: The distance between the differential drive's left and\n right wheels, in meters.\n @throws domain_error if kVLinear <= 0, kALinear <= 0, kVAngular <= 0,\n kAAngular <= 0, or trackwidth <= 0.\n @see https://github.com/wpilibsuite/sysid", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "identifyDrivetrainSystem"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_2_1_1", "args": [{"name": "kV", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_meter"}], "tooltip": "Create a state-space model for a 1 DOF position system from its kV\n(volts/(unit/sec)) and kA (volts/(unit/sec\u00b2)). These constants can be\nfound using SysId. the states of the system are [position, velocity],\ninputs are [voltage], and outputs are [position].\n\nYou MUST use an SI unit (i.e. meters or radians) for the Distance template\nargument. You may still use non-SI units (such as feet or inches) for the\nactual method arguments; they will automatically be converted to SI\ninternally.\n\nThe parameters provided by the user are from this feedforward model:\n\nu = K_v v + K_a a\n\n@throws std::domain_error if kV < 0 or kA <= 0.\n@see https://github.com/wpilibsuite/sysid\n\n:param kV: The velocity gain, in volts/(unit/sec).\n:param kA: The acceleration gain, in volts/(unit/sec\u00b2).", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "identifyPositionSystemMeters"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_2_1_1", "args": [{"name": "kV", "type": "wpimath.units.volt_seconds_per_radian"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_radian"}], "tooltip": "", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "identifyPositionSystemRadians"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_1_1_1", "args": [{"name": "kV", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_meter"}], "tooltip": "Create a state-space model for a 1 DOF velocity system from its kV\n(volts/(unit/sec)) and kA (volts/(unit/sec\u00b2)). These constants can be\nfound using SysId. The states of the system are [velocity], inputs are\n[voltage], and outputs are [velocity].\n\nYou MUST use an SI unit (i.e. meters or radians) for the Distance template\nargument. You may still use non-SI units (such as feet or inches) for the\nactual method arguments; they will automatically be converted to SI\ninternally.\n\nThe parameters provided by the user are from this feedforward model:\n\nu = K_v v + K_a a\n\n:param kV: The velocity gain, in volts/(unit/sec).\n:param kA: The acceleration gain, in volts/(unit/sec\u00b2).\n @throws std::domain_error if kV < 0 or kA <= 0.\n @see https://github.com/wpilibsuite/sysid", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "identifyVelocitySystemMeters"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_1_1_1"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_1_1_1", "args": [{"name": "kV", "type": "wpimath.units.volt_seconds_per_radian"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_radian"}], "tooltip": "", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "identifyVelocitySystemRadians"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myLinearSystem_2_1_2"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.system.LinearSystem_2_1_2", "args": [{"name": "motor", "type": "wpimath.system.plant.DCMotor"}, {"name": "J", "type": "wpimath.units.kilogram_square_meters"}, {"name": "gearing", "type": "float"}], "tooltip": "Create a state-space model of a single-jointed arm system.The states of the\nsystem are [angle, angular velocity], inputs are [voltage], and outputs are\n[angle].\n\n:param motor: The motor (or gearbox) attached to the arm.\n:param J: The moment of inertia J of the arm.\n:param gearing: Gear ratio from motor to arm.\n @throws std::domain_error if J <= 0 or gearing <= 0.", "importModule": "wpimath.system.plant"}, "fields": {"MODULE_OR_CLASS": "wpimath.system.plant.LinearSystemId", "FUNC": "singleJointedArmSystem"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDCMotor"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.Constraints.ts b/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.Constraints.ts
index 059bc048..ce8f088a 100644
--- a/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.Constraints.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.Constraints.ts
@@ -18,9 +18,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "varType": "wpimath.units.units_per_second", "importModule": "", "selfLabel": "constraints", "selfType": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "VAR": "A"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "varType": "wpimath.units.meters_per_second_squared_per_volt", "importModule": "", "selfLabel": "constraints", "selfType": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "VAR": "B"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "varType": "wpimath.units.volts", "importModule": "", "selfLabel": "constraints", "selfType": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "VAR": "maxInput"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myConstraints"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.Constraints", "args": [{"name": "maxInput", "type": "wpimath.units.volts"}, {"name": "kV", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_meter"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "FUNC": "fromCharacteristics"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myConstraints"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.Constraints", "args": [{"name": "maxInput", "type": "wpimath.units.volts"}, {"name": "a", "type": "wpimath.units.units_per_second"}, {"name": "b", "type": "wpimath.units.meters_per_second_squared_per_volt"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "FUNC": "fromStateSpace"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "constraints", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.Constraints"}], "tooltip": "Computes the max achievable velocity for an Exponential Profile.\n\n:returns: The steady-state velocity achieved by this profile.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myConstraints"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "args": [{"name": "maxInput", "type": "wpimath.units.volts"}, {"name": "kV", "type": "wpimath.units.volt_seconds_per_meter"}, {"name": "kA", "type": "wpimath.units.volt_seconds_squared_per_meter"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "FUNC": "fromCharacteristics"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myConstraints"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "args": [{"name": "maxInput", "type": "wpimath.units.volts"}, {"name": "a", "type": "wpimath.units.units_per_second"}, {"name": "b", "type": "wpimath.units.meters_per_second_squared_per_volt"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "FUNC": "fromStateSpace"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "constraints", "type": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints"}], "tooltip": "Computes the max achievable velocity for an Exponential Profile.\n\n:returns: The steady-state velocity achieved by this profile.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming.ts b/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming.ts
index a3b43d10..6259865a 100644
--- a/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming.ts
@@ -15,8 +15,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming", "varType": "wpimath.units.seconds", "importModule": "", "selfLabel": "profileTiming", "selfType": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming", "VAR": "inflectionTime"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfileTiming"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming", "varType": "wpimath.units.seconds", "importModule": "", "selfLabel": "profileTiming", "selfType": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming", "VAR": "totalTime"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfileTiming"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myProfileTiming"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.ProfileTiming", "args": [], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "profileTiming", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.ProfileTiming"}, {"name": "t", "type": "wpimath.units.seconds"}], "tooltip": "Decides if the profile is finished by time t.\n\n:param t: The time since the beginning of the profile.\n\n:returns: if the profile is finished at time t.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming", "FUNC": "isFinished"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfileTiming"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myProfileTiming"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming", "args": [], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "profileTiming", "type": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming"}, {"name": "t", "type": "wpimath.units.seconds"}], "tooltip": "Decides if the profile is finished by time t.\n\n:param t: The time since the beginning of the profile.\n\n:returns: if the profile is finished at time t.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming", "FUNC": "isFinished"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myProfileTiming"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.State.ts b/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.State.ts
index 5bdc5c07..73a4a405 100644
--- a/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.State.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.State.ts
@@ -16,7 +16,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.ExponentialProfileMeterVolts.State", "varType": "wpimath.units.meters", "importModule": "", "selfLabel": "state", "selfType": "wpimath.trajectory.ExponentialProfileMeterVolts.State"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.State", "VAR": "position"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.ExponentialProfileMeterVolts.State", "varType": "wpimath.units.meters_per_second", "importModule": "", "selfLabel": "state", "selfType": "wpimath.trajectory.ExponentialProfileMeterVolts.State"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.State", "VAR": "velocity"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.State", "args": [{"name": "arg0", "type": "wpimath.units.meters"}, {"name": "arg1", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.State"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.ExponentialProfileMeterVolts.State", "args": [{"name": "arg0", "type": "wpimath.units.meters"}, {"name": "arg1", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts.State"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.ts b/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.ts
index ebaba97d..761c4491 100644
--- a/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.ExponentialProfileMeterVolts.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExponentialProfileMeterVolts"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts", "args": [{"name": "constraints", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.Constraints"}], "tooltip": "Constructs a ExponentialProfile.\n\n:param constraints: The constraints on the profile, like maximum input.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.State", "args": [{"name": "exponentialProfileMeterVolts", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts"}, {"name": "t", "type": "wpimath.units.seconds"}, {"name": "current", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.State"}, {"name": "goal", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.State"}], "tooltip": "Calculates the position and velocity for the profile at a time t where the\ncurrent state is at time t = 0.\n\n:param t: How long to advance from the current state toward the desired\n state.\n:param current: The current state.\n:param goal: The desired state when the profile is complete.\n\n:returns: The position and velocity of the profile at time t.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExponentialProfileMeterVolts"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.State", "args": [{"name": "exponentialProfileMeterVolts", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts"}, {"name": "current", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.State"}, {"name": "goal", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.State"}], "tooltip": "Calculates the point after which the fastest way to reach the goal state is\nto apply input in the opposite direction.\n\n:param current: The current state.\n:param goal: The desired state when the profile is complete.\n\n:returns: The position and velocity of the profile at the inflection point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts", "FUNC": "calculateInflectionPoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExponentialProfileMeterVolts"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myProfileTiming"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.ProfileTiming", "args": [{"name": "exponentialProfileMeterVolts", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts"}, {"name": "current", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.State"}, {"name": "goal", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.State"}], "tooltip": "Calculates the time it will take for this profile to reach the inflection\npoint, and the time it will take for this profile to reach the goal state.\n\n:param current: The current state.\n:param goal: The desired state when the profile is complete.\n\n:returns: The timing information for this profile.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts", "FUNC": "calculateProfileTiming"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExponentialProfileMeterVolts"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "exponentialProfileMeterVolts", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts"}, {"name": "current", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.State"}, {"name": "goal", "type": "wpimath._controls._controls.trajectory.ExponentialProfileMeterVolts.State"}], "tooltip": "Calculates the time it will take for this profile to reach the goal state.\n\n:param current: The current state.\n:param goal: The desired state when the profile is complete.\n\n:returns: The total duration of this profile.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts", "FUNC": "timeLeftUntil"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExponentialProfileMeterVolts"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myExponentialProfileMeterVolts"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.ExponentialProfileMeterVolts", "args": [{"name": "constraints", "type": "wpimath.trajectory.ExponentialProfileMeterVolts.Constraints"}], "tooltip": "Constructs a ExponentialProfile.\n\n:param constraints: The constraints on the profile, like maximum input.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.ExponentialProfileMeterVolts.State", "args": [{"name": "exponentialProfileMeterVolts", "type": "wpimath.trajectory.ExponentialProfileMeterVolts"}, {"name": "t", "type": "wpimath.units.seconds"}, {"name": "current", "type": "wpimath.trajectory.ExponentialProfileMeterVolts.State"}, {"name": "goal", "type": "wpimath.trajectory.ExponentialProfileMeterVolts.State"}], "tooltip": "Calculates the position and velocity for the profile at a time t where the\ncurrent state is at time t = 0.\n\n:param t: How long to advance from the current state toward the desired\n state.\n:param current: The current state.\n:param goal: The desired state when the profile is complete.\n\n:returns: The position and velocity of the profile at time t.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExponentialProfileMeterVolts"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.ExponentialProfileMeterVolts.State", "args": [{"name": "exponentialProfileMeterVolts", "type": "wpimath.trajectory.ExponentialProfileMeterVolts"}, {"name": "current", "type": "wpimath.trajectory.ExponentialProfileMeterVolts.State"}, {"name": "goal", "type": "wpimath.trajectory.ExponentialProfileMeterVolts.State"}], "tooltip": "Calculates the point after which the fastest way to reach the goal state is\nto apply input in the opposite direction.\n\n:param current: The current state.\n:param goal: The desired state when the profile is complete.\n\n:returns: The position and velocity of the profile at the inflection point.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts", "FUNC": "calculateInflectionPoint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExponentialProfileMeterVolts"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myProfileTiming"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.ExponentialProfileMeterVolts.ProfileTiming", "args": [{"name": "exponentialProfileMeterVolts", "type": "wpimath.trajectory.ExponentialProfileMeterVolts"}, {"name": "current", "type": "wpimath.trajectory.ExponentialProfileMeterVolts.State"}, {"name": "goal", "type": "wpimath.trajectory.ExponentialProfileMeterVolts.State"}], "tooltip": "Calculates the time it will take for this profile to reach the inflection\npoint, and the time it will take for this profile to reach the goal state.\n\n:param current: The current state.\n:param goal: The desired state when the profile is complete.\n\n:returns: The timing information for this profile.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts", "FUNC": "calculateProfileTiming"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExponentialProfileMeterVolts"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "exponentialProfileMeterVolts", "type": "wpimath.trajectory.ExponentialProfileMeterVolts"}, {"name": "current", "type": "wpimath.trajectory.ExponentialProfileMeterVolts.State"}, {"name": "goal", "type": "wpimath.trajectory.ExponentialProfileMeterVolts.State"}], "tooltip": "Calculates the time it will take for this profile to reach the goal state.\n\n:param current: The current state.\n:param goal: The desired state when the profile is complete.\n\n:returns: The total duration of this profile.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.ExponentialProfileMeterVolts", "FUNC": "timeLeftUntil"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myExponentialProfileMeterVolts"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.Trajectory.State.ts b/src/blocks/generated/class_wpimath.trajectory.Trajectory.State.ts
index dd24de09..f1fd04d3 100644
--- a/src/blocks/generated/class_wpimath.trajectory.Trajectory.State.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.Trajectory.State.ts
@@ -37,8 +37,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.Trajectory.State", "varType": "wpimath.units.meters_per_second", "importModule": "", "selfLabel": "state", "selfType": "wpimath.trajectory.Trajectory.State"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory.State", "VAR": "velocity"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.Trajectory.State", "varType": "wpimath.units.meters_per_second", "importModule": "", "selfLabel": "state", "selfType": "wpimath.trajectory.Trajectory.State"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory.State", "VAR": "velocity"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.Trajectory.State", "varType": "wpimath.units.feet_per_second", "importModule": "", "selfLabel": "state", "selfType": "wpimath.trajectory.Trajectory.State"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory.State", "VAR": "velocity_fps"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.Trajectory.State", "args": [{"name": "t", "type": "wpimath.units.seconds"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}, {"name": "acceleration", "type": "wpimath.units.meters_per_second_squared"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory.State"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.Trajectory.State", "args": [{"name": "state", "type": "wpimath._controls._controls.trajectory.Trajectory.State"}, {"name": "endValue", "type": "wpimath._controls._controls.trajectory.Trajectory.State"}, {"name": "i", "type": "float"}], "tooltip": "Interpolates between two States.\n\n:param endValue: The end value for the interpolation.\n:param i: The interpolant (fraction).\n\n:returns: The interpolated state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory.State", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.Trajectory.State", "args": [{"name": "t", "type": "wpimath.units.seconds"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}, {"name": "acceleration", "type": "wpimath.units.meters_per_second_squared"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory.State"}, "inputs": {"ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.Trajectory.State", "args": [{"name": "state", "type": "wpimath.trajectory.Trajectory.State"}, {"name": "endValue", "type": "wpimath.trajectory.Trajectory.State"}, {"name": "i", "type": "float"}], "tooltip": "Interpolates between two States.\n\n:param endValue: The end value for the interpolation.\n:param i: The interpolant (fraction).\n\n:returns: The interpolated state.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory.State", "FUNC": "interpolate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.Trajectory.ts b/src/blocks/generated/class_wpimath.trajectory.Trajectory.ts
index 32e4798d..dc51f7d1 100644
--- a/src/blocks/generated/class_wpimath.trajectory.Trajectory.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.Trajectory.ts
@@ -11,14 +11,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 8 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.Trajectory", "args": [], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.Trajectory", "args": [{"name": "states", "type": "list[wpimath._controls._controls.trajectory.Trajectory.State]"}], "tooltip": "Constructs a trajectory from a vector of states.\n\n@throws std::invalid_argument if the vector of states is empty.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry._geometry.Pose2d", "args": [{"name": "trajectory", "type": "wpimath._controls._controls.trajectory.Trajectory"}], "tooltip": "Returns the initial pose of the trajectory.\n\n:returns: The initial pose of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory", "FUNC": "initialPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.Trajectory", "args": [{"name": "trajectory", "type": "wpimath._controls._controls.trajectory.Trajectory"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}], "tooltip": "Transforms all poses in the trajectory so that they are relative to the\ngiven pose. This is useful for converting a field-relative trajectory\ninto a robot-relative trajectory.\n\n:param pose: The pose that is the origin of the coordinate frame that\n the current trajectory will be transformed into.\n\n:returns: The transformed trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory", "FUNC": "relativeTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.Trajectory.State", "args": [{"name": "trajectory", "type": "wpimath._controls._controls.trajectory.Trajectory"}, {"name": "t", "type": "wpimath.units.seconds"}], "tooltip": "Sample the trajectory at a point in time.\n\n:param t: The point in time since the beginning of the trajectory to sample.\n\n:returns: The state at that point in time.\n @throws std::runtime_error if the trajectory has no states.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[wpimath._controls._controls.trajectory.Trajectory.State]", "args": [{"name": "trajectory", "type": "wpimath._controls._controls.trajectory.Trajectory"}], "tooltip": "Return the states of the trajectory.\n\n:returns: The states of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory", "FUNC": "states"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "trajectory", "type": "wpimath._controls._controls.trajectory.Trajectory"}], "tooltip": "Returns the overall duration of the trajectory.\n\n:returns: The duration of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory", "FUNC": "totalTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.Trajectory", "args": [{"name": "trajectory", "type": "wpimath._controls._controls.trajectory.Trajectory"}, {"name": "transform", "type": "wpimath.geometry._geometry.Transform2d"}], "tooltip": "Transforms all poses in the trajectory by the given transform. This is\nuseful for converting a robot-relative trajectory into a field-relative\ntrajectory. This works with respect to the first pose in the trajectory.\n\n:param transform: The transform to transform the trajectory by.\n\n:returns: The transformed trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory", "FUNC": "transformBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.Trajectory", "args": [], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.Trajectory", "args": [{"name": "states", "type": "list[wpimath._controls._controls.trajectory.Trajectory.State]"}], "tooltip": "Constructs a trajectory from a vector of states.\n\n@throws std::invalid_argument if the vector of states is empty.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose2d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.geometry.Pose2d", "args": [{"name": "trajectory", "type": "wpimath.trajectory.Trajectory"}], "tooltip": "Returns the initial pose of the trajectory.\n\n:returns: The initial pose of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory", "FUNC": "initialPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.Trajectory", "args": [{"name": "trajectory", "type": "wpimath.trajectory.Trajectory"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}], "tooltip": "Transforms all poses in the trajectory so that they are relative to the\ngiven pose. This is useful for converting a field-relative trajectory\ninto a robot-relative trajectory.\n\n:param pose: The pose that is the origin of the coordinate frame that\n the current trajectory will be transformed into.\n\n:returns: The transformed trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory", "FUNC": "relativeTo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.Trajectory.State", "args": [{"name": "trajectory", "type": "wpimath.trajectory.Trajectory"}, {"name": "t", "type": "wpimath.units.seconds"}], "tooltip": "Sample the trajectory at a point in time.\n\n:param t: The point in time since the beginning of the trajectory to sample.\n\n:returns: The state at that point in time.\n @throws std::runtime_error if the trajectory has no states.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory", "FUNC": "sample"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "list[wpimath._controls._controls.trajectory.Trajectory.State]", "args": [{"name": "trajectory", "type": "wpimath.trajectory.Trajectory"}], "tooltip": "Return the states of the trajectory.\n\n:returns: The states of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory", "FUNC": "states"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "trajectory", "type": "wpimath.trajectory.Trajectory"}], "tooltip": "Returns the overall duration of the trajectory.\n\n:returns: The duration of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory", "FUNC": "totalTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.Trajectory", "args": [{"name": "trajectory", "type": "wpimath.trajectory.Trajectory"}, {"name": "transform", "type": "wpimath.geometry.Transform2d"}], "tooltip": "Transforms all poses in the trajectory by the given transform. This is\nuseful for converting a robot-relative trajectory into a field-relative\ntrajectory. This works with respect to the first pose in the trajectory.\n\n:param transform: The transform to transform the trajectory by.\n\n:returns: The transformed trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.Trajectory", "FUNC": "transformBy"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.TrajectoryConfig.ts b/src/blocks/generated/class_wpimath.trajectory.TrajectoryConfig.ts
index 15ca35c1..cbe6db0d 100644
--- a/src/blocks/generated/class_wpimath.trajectory.TrajectoryConfig.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.TrajectoryConfig.ts
@@ -11,23 +11,23 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 17 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectoryConfig"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.TrajectoryConfig", "args": [{"name": "maxVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "maxAcceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Constructs a config object.\n\n:param maxVelocity: The max velocity of the trajectory.\n:param maxAcceleration: The max acceleration of the trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}, {"name": "constraint", "type": "wpimath._controls._controls.constraint.TrajectoryConstraint"}], "tooltip": "Adds a user-defined constraint to the trajectory.\n\n:param constraint: The user-defined constraint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "addConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}], "tooltip": "Returns the ending velocity of the trajectory.\n\n:returns: The ending velocity of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "endVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectoryConfig"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.trajectory.TrajectoryConfig", "args": [{"name": "maxVelocity", "type": "wpimath.units.feet_per_second"}, {"name": "maxAcceleration", "type": "wpimath.units.feet_per_second_squared"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "fromFps"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}], "tooltip": "Returns whether the trajectory is reversed or not.\n\n:returns: whether the trajectory is reversed or not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "isReversed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}], "tooltip": "Returns the maximum acceleration of the trajectory.\n\n:returns: The maximum acceleration of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "maxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}], "tooltip": "Returns the maximum velocity of the trajectory.\n\n:returns: The maximum velocity of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}, {"name": "endVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Sets the end velocity of the trajectory.\n\n:param endVelocity: The end velocity of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setEndVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}, {"name": "kinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}], "tooltip": "Adds a differential drive kinematics constraint to ensure that\nno wheel velocity of a differential drive goes above the max velocity.\n\n:param kinematics: The differential drive kinematics.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}, {"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}], "tooltip": "Adds a mecanum drive kinematics constraint to ensure that\nno wheel velocity of a mecanum drive goes above the max velocity.\n\n:param kinematics: The mecanum drive kinematics.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}, {"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}], "tooltip": "Adds a swerve drive kinematics constraint to ensure that\nno wheel velocity of a swerve drive goes above the max velocity.\n\n:param kinematics: The swerve drive kinematics.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}, {"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}], "tooltip": "Adds a swerve drive kinematics constraint to ensure that\nno wheel velocity of a swerve drive goes above the max velocity.\n\n:param kinematics: The swerve drive kinematics.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}, {"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}], "tooltip": "Adds a swerve drive kinematics constraint to ensure that\nno wheel velocity of a swerve drive goes above the max velocity.\n\n:param kinematics: The swerve drive kinematics.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}, {"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}], "tooltip": "Adds a swerve drive kinematics constraint to ensure that\nno wheel velocity of a swerve drive goes above the max velocity.\n\n:param kinematics: The swerve drive kinematics.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}, {"name": "reversed", "type": "bool"}], "tooltip": "Sets the reversed flag of the trajectory.\n\n:param reversed: Whether the trajectory should be reversed or not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setReversed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}, {"name": "startVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Sets the start velocity of the trajectory.\n\n:param startVelocity: The start velocity of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setStartVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "trajectoryConfig", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}], "tooltip": "Returns the starting velocity of the trajectory.\n\n:returns: The starting velocity of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "startVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectoryConfig"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.TrajectoryConfig", "args": [{"name": "maxVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "maxAcceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "Constructs a config object.\n\n:param maxVelocity: The max velocity of the trajectory.\n:param maxAcceleration: The max acceleration of the trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}, {"name": "constraint", "type": "wpimath.trajectory.constraint.TrajectoryConstraint"}], "tooltip": "Adds a user-defined constraint to the trajectory.\n\n:param constraint: The user-defined constraint.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "addConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}], "tooltip": "Returns the ending velocity of the trajectory.\n\n:returns: The ending velocity of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "endVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectoryConfig"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.TrajectoryConfig", "args": [{"name": "maxVelocity", "type": "wpimath.units.feet_per_second"}, {"name": "maxAcceleration", "type": "wpimath.units.feet_per_second_squared"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "fromFps"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}], "tooltip": "Returns whether the trajectory is reversed or not.\n\n:returns: whether the trajectory is reversed or not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "isReversed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second_squared", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}], "tooltip": "Returns the maximum acceleration of the trajectory.\n\n:returns: The maximum acceleration of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "maxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}], "tooltip": "Returns the maximum velocity of the trajectory.\n\n:returns: The maximum velocity of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}, {"name": "endVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Sets the end velocity of the trajectory.\n\n:param endVelocity: The end velocity of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setEndVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}, {"name": "kinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}], "tooltip": "Adds a differential drive kinematics constraint to ensure that\nno wheel velocity of a differential drive goes above the max velocity.\n\n:param kinematics: The differential drive kinematics.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}, {"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}], "tooltip": "Adds a mecanum drive kinematics constraint to ensure that\nno wheel velocity of a mecanum drive goes above the max velocity.\n\n:param kinematics: The mecanum drive kinematics.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}, {"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}], "tooltip": "Adds a swerve drive kinematics constraint to ensure that\nno wheel velocity of a swerve drive goes above the max velocity.\n\n:param kinematics: The swerve drive kinematics.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}, {"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}], "tooltip": "Adds a swerve drive kinematics constraint to ensure that\nno wheel velocity of a swerve drive goes above the max velocity.\n\n:param kinematics: The swerve drive kinematics.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}, {"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}], "tooltip": "Adds a swerve drive kinematics constraint to ensure that\nno wheel velocity of a swerve drive goes above the max velocity.\n\n:param kinematics: The swerve drive kinematics.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}, {"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}], "tooltip": "Adds a swerve drive kinematics constraint to ensure that\nno wheel velocity of a swerve drive goes above the max velocity.\n\n:param kinematics: The swerve drive kinematics.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setKinematics"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}, {"name": "reversed", "type": "bool"}], "tooltip": "Sets the reversed flag of the trajectory.\n\n:param reversed: Whether the trajectory should be reversed or not.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setReversed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "None", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}, {"name": "startVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Sets the start velocity of the trajectory.\n\n:param startVelocity: The start velocity of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "setStartVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "trajectoryConfig", "type": "wpimath.trajectory.TrajectoryConfig"}], "tooltip": "Returns the starting velocity of the trajectory.\n\n:returns: The starting velocity of the trajectory.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryConfig", "FUNC": "startVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.TrajectoryGenerator.ts b/src/blocks/generated/class_wpimath.trajectory.TrajectoryGenerator.ts
index 7d1d5b8f..6c40ad20 100644
--- a/src/blocks/generated/class_wpimath.trajectory.TrajectoryGenerator.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.TrajectoryGenerator.ts
@@ -11,12 +11,12 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 8 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectoryGenerator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.TrajectoryGenerator", "args": [], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.trajectory.Trajectory", "args": [{"name": "initial", "type": "wpimath.spline._spline.Spline3.ControlVector"}, {"name": "interiorWaypoints", "type": "list[wpimath.geometry._geometry.Translation2d]"}, {"name": "end", "type": "wpimath.spline._spline.Spline3.ControlVector"}, {"name": "config", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}], "tooltip": "Generates a trajectory from the given control vectors and config. This\nmethod uses clamped cubic splines -- a method in which the exterior control\nvectors and interior waypoints are provided. The headings are automatically\ndetermined at the interior points to ensure continuous curvature.\n\n:param initial: The initial control vector.\n:param interiorWaypoints: The interior waypoints.\n:param end: The ending control vector.\n:param config: The configuration for the trajectory.\n\n:returns: The generated trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator", "FUNC": "generateTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.trajectory.Trajectory", "args": [{"name": "start", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "interiorWaypoints", "type": "list[wpimath.geometry._geometry.Translation2d]"}, {"name": "end", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "config", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}], "tooltip": "Generates a trajectory from the given waypoints and config. This method\nuses clamped cubic splines -- a method in which the initial pose, final\npose, and interior waypoints are provided. The headings are automatically\ndetermined at the interior points to ensure continuous curvature.\n\n:param start: The starting pose.\n:param interiorWaypoints: The interior waypoints.\n:param end: The ending pose.\n:param config: The configuration for the trajectory.\n\n:returns: The generated trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator", "FUNC": "generateTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.trajectory.Trajectory", "args": [{"name": "controlVectors", "type": "list[wpimath.spline._spline.Spline5.ControlVector]"}, {"name": "config", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}], "tooltip": "Generates a trajectory from the given quintic control vectors and config.\nThis method uses quintic hermite splines -- therefore, all points must be\nrepresented by control vectors. Continuous curvature is guaranteed in this\nmethod.\n\n:param controlVectors: List of quintic control vectors.\n:param config: The configuration for the trajectory.\n\n:returns: The generated trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator", "FUNC": "generateTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.trajectory.Trajectory", "args": [{"name": "waypoints", "type": "list[wpimath.geometry._geometry.Pose2d]"}, {"name": "config", "type": "wpimath._controls._controls.trajectory.TrajectoryConfig"}], "tooltip": "Generates a trajectory from the given waypoints and config. This method\nuses quintic hermite splines -- therefore, all points must be represented\nby Pose2d objects. Continuous curvature is guaranteed in this method.\n\n:param waypoints: List of waypoints..\n:param config: The configuration for the trajectory.\n\n:returns: The generated trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator", "FUNC": "generateTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "func", "type": "Callable[[str], None]"}], "tooltip": "Set error reporting function. By default, it is output to stderr.\n\n:param func: Error reporting function.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator", "FUNC": "setErrorHandler"}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectoryGenerator"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.TrajectoryGenerator", "args": [], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.Trajectory", "args": [{"name": "initial", "type": "wpimath.spline.Spline3.ControlVector"}, {"name": "interiorWaypoints", "type": "list[wpimath.geometry._geometry.Translation2d]"}, {"name": "end", "type": "wpimath.spline.Spline3.ControlVector"}, {"name": "config", "type": "wpimath.trajectory.TrajectoryConfig"}], "tooltip": "Generates a trajectory from the given control vectors and config. This\nmethod uses clamped cubic splines -- a method in which the exterior control\nvectors and interior waypoints are provided. The headings are automatically\ndetermined at the interior points to ensure continuous curvature.\n\n:param initial: The initial control vector.\n:param interiorWaypoints: The interior waypoints.\n:param end: The ending control vector.\n:param config: The configuration for the trajectory.\n\n:returns: The generated trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator", "FUNC": "generateTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlVector"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.Trajectory", "args": [{"name": "start", "type": "wpimath.geometry.Pose2d"}, {"name": "interiorWaypoints", "type": "list[wpimath.geometry._geometry.Translation2d]"}, {"name": "end", "type": "wpimath.geometry.Pose2d"}, {"name": "config", "type": "wpimath.trajectory.TrajectoryConfig"}], "tooltip": "Generates a trajectory from the given waypoints and config. This method\nuses clamped cubic splines -- a method in which the initial pose, final\npose, and interior waypoints are provided. The headings are automatically\ndetermined at the interior points to ensure continuous curvature.\n\n:param start: The starting pose.\n:param interiorWaypoints: The interior waypoints.\n:param end: The ending pose.\n:param config: The configuration for the trajectory.\n\n:returns: The generated trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator", "FUNC": "generateTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.Trajectory", "args": [{"name": "controlVectors", "type": "list[wpimath.spline._spline.Spline5.ControlVector]"}, {"name": "config", "type": "wpimath.trajectory.TrajectoryConfig"}], "tooltip": "Generates a trajectory from the given quintic control vectors and config.\nThis method uses quintic hermite splines -- therefore, all points must be\nrepresented by control vectors. Continuous curvature is guaranteed in this\nmethod.\n\n:param controlVectors: List of quintic control vectors.\n:param config: The configuration for the trajectory.\n\n:returns: The generated trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator", "FUNC": "generateTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.Trajectory", "args": [{"name": "waypoints", "type": "list[wpimath.geometry._geometry.Pose2d]"}, {"name": "config", "type": "wpimath.trajectory.TrajectoryConfig"}], "tooltip": "Generates a trajectory from the given waypoints and config. This method\nuses quintic hermite splines -- therefore, all points must be represented\nby Pose2d objects. Continuous curvature is guaranteed in this method.\n\n:param waypoints: List of waypoints..\n:param config: The configuration for the trajectory.\n\n:returns: The generated trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator", "FUNC": "generateTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConfig"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "func", "type": "Callable[[str], None]"}], "tooltip": "Set error reporting function. By default, it is output to stderr.\n\n:param func: Error reporting function.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator", "FUNC": "setErrorHandler"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "splines", "type": "list[wpimath.spline._spline.CubicHermiteSpline]"}], "tooltip": "Generate spline points from a vector of splines by parameterizing the\nsplines.\n\n:param splines: The splines to parameterize.\n\n:returns: The spline points for use in time parameterization of a trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator", "FUNC": "splinePointsFromSplines"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myList"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "list[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]", "args": [{"name": "splines", "type": "list[wpimath.spline._spline.QuinticHermiteSpline]"}], "tooltip": "Generate spline points from a vector of splines by parameterizing the\nsplines.\n\n:param splines: The splines to parameterize.\n\n:returns: The spline points for use in time parameterization of a trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryGenerator", "FUNC": "splinePointsFromSplines"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
];
diff --git a/src/blocks/generated/class_wpimath.trajectory.TrajectoryParameterizer.ts b/src/blocks/generated/class_wpimath.trajectory.TrajectoryParameterizer.ts
index 5a18d55c..52d93238 100644
--- a/src/blocks/generated/class_wpimath.trajectory.TrajectoryParameterizer.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.TrajectoryParameterizer.ts
@@ -11,8 +11,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 2 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectoryParameterizer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.TrajectoryParameterizer", "args": [], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryParameterizer"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.trajectory.Trajectory", "args": [{"name": "points", "type": "list[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]"}, {"name": "constraints", "type": "list[wpimath._controls._controls.constraint.TrajectoryConstraint]"}, {"name": "startVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "endVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "maxVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "maxAcceleration", "type": "wpimath.units.meters_per_second_squared"}, {"name": "reversed", "type": "bool"}], "tooltip": "Parameterize the trajectory by time. This is where the velocity profile is\ngenerated.\n\nThe derivation of the algorithm used can be found here:\n\n\n:param points: Reference to the spline points.\n:param constraints: A vector of various velocity and acceleration\n constraints.\n:param startVelocity: The start velocity for the trajectory.\n:param endVelocity: The end velocity for the trajectory.\n:param maxVelocity: The max velocity for the trajectory.\n:param maxAcceleration: The max acceleration for the trajectory.\n:param reversed: Whether the robot should move backwards. Note that the\n robot will still move from a -> b -> ... -> z as defined in the waypoints.\n\n:returns: The trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryParameterizer", "FUNC": "timeParameterizeTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectoryParameterizer"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.TrajectoryParameterizer", "args": [], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryParameterizer"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.Trajectory", "args": [{"name": "points", "type": "list[tuple[wpimath.geometry._geometry.Pose2d, wpimath.units.radians_per_meter]]"}, {"name": "constraints", "type": "list[wpimath._controls._controls.constraint.TrajectoryConstraint]"}, {"name": "startVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "endVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "maxVelocity", "type": "wpimath.units.meters_per_second"}, {"name": "maxAcceleration", "type": "wpimath.units.meters_per_second_squared"}, {"name": "reversed", "type": "bool"}], "tooltip": "Parameterize the trajectory by time. This is where the velocity profile is\ngenerated.\n\nThe derivation of the algorithm used can be found here:\n\n\n:param points: Reference to the spline points.\n:param constraints: A vector of various velocity and acceleration\n constraints.\n:param startVelocity: The start velocity for the trajectory.\n:param endVelocity: The end velocity for the trajectory.\n:param maxVelocity: The max velocity for the trajectory.\n:param maxAcceleration: The max acceleration for the trajectory.\n:param reversed: Whether the robot should move backwards. Note that the\n robot will still move from a -> b -> ... -> z as defined in the waypoints.\n\n:returns: The trajectory.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryParameterizer", "FUNC": "timeParameterizeTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myList"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.TrajectoryUtil.ts b/src/blocks/generated/class_wpimath.trajectory.TrajectoryUtil.ts
index deb747af..e02330a9 100644
--- a/src/blocks/generated/class_wpimath.trajectory.TrajectoryUtil.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.TrajectoryUtil.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.trajectory.Trajectory", "args": [{"name": "jsonStr", "type": "str"}], "tooltip": "Serializes a Trajectory to PathWeaver-style JSON.\n\n:param jsonStr: the string containing the serialized JSON\n\n:returns: the trajectory represented by the JSON", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryUtil", "FUNC": "deserializeTrajectory"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.trajectory.Trajectory", "args": [{"name": "path", "type": "str"}], "tooltip": "Imports a Trajectory from a JSON file exported from PathWeaver.\n\n:param path: The path of the json file to import from.\n\n:returns: The trajectory represented by the file.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryUtil", "FUNC": "fromPathweaverJson"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "str", "args": [{"name": "trajectory", "type": "wpimath._controls._controls.trajectory.Trajectory"}], "tooltip": "Deserializes a Trajectory from JSON exported from PathWeaver.\n\n:param trajectory: the trajectory to export\n\n:returns: the string containing the serialized JSON", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryUtil", "FUNC": "serializeTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "trajectory", "type": "wpimath._controls._controls.trajectory.Trajectory"}, {"name": "path", "type": "str"}], "tooltip": "Exports a Trajectory to a PathWeaver-style JSON file.\n\n:param trajectory: the trajectory to export\n:param path: the path of the file to export to", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryUtil", "FUNC": "toPathweaverJson"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.Trajectory", "args": [{"name": "jsonStr", "type": "str"}], "tooltip": "Serializes a Trajectory to PathWeaver-style JSON.\n\n:param jsonStr: the string containing the serialized JSON\n\n:returns: the trajectory represented by the JSON", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryUtil", "FUNC": "deserializeTrajectory"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectory"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.Trajectory", "args": [{"name": "path", "type": "str"}], "tooltip": "Imports a Trajectory from a JSON file exported from PathWeaver.\n\n:param path: The path of the json file to import from.\n\n:returns: The trajectory represented by the file.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryUtil", "FUNC": "fromPathweaverJson"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "str", "args": [{"name": "trajectory", "type": "wpimath.trajectory.Trajectory"}], "tooltip": "Deserializes a Trajectory from JSON exported from PathWeaver.\n\n:param trajectory: the trajectory to export\n\n:returns: the string containing the serialized JSON", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryUtil", "FUNC": "serializeTrajectory"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "None", "args": [{"name": "trajectory", "type": "wpimath.trajectory.Trajectory"}, {"name": "path", "type": "str"}], "tooltip": "Exports a Trajectory to a PathWeaver-style JSON file.\n\n:param trajectory: the trajectory to export\n:param path: the path of the file to export to", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrajectoryUtil", "FUNC": "toPathweaverJson"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectory"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfile.Constraints.ts b/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfile.Constraints.ts
index 6ae73cff..a3befcbc 100644
--- a/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfile.Constraints.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfile.Constraints.ts
@@ -16,7 +16,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.TrapezoidProfile.Constraints", "varType": "wpimath.units.units_per_second_squared", "importModule": "", "selfLabel": "constraints", "selfType": "wpimath.trajectory.TrapezoidProfile.Constraints"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile.Constraints", "VAR": "maxAcceleration"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.TrapezoidProfile.Constraints", "varType": "wpimath.units.units_per_second", "importModule": "", "selfLabel": "constraints", "selfType": "wpimath.trajectory.TrapezoidProfile.Constraints"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile.Constraints", "VAR": "maxVelocity"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myConstraints"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfile.Constraints", "args": [{"name": "maxVelocity", "type": "wpimath.units.units_per_second"}, {"name": "maxAcceleration", "type": "wpimath.units.units_per_second_squared"}], "tooltip": "Constructs constraints for a Trapezoid Profile.\n\n:param maxVelocity: Maximum velocity.\n:param maxAcceleration: Maximum acceleration.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile.Constraints"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myConstraints"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.TrapezoidProfile.Constraints", "args": [{"name": "maxVelocity", "type": "wpimath.units.units_per_second"}, {"name": "maxAcceleration", "type": "wpimath.units.units_per_second_squared"}], "tooltip": "Constructs constraints for a Trapezoid Profile.\n\n:param maxVelocity: Maximum velocity.\n:param maxAcceleration: Maximum acceleration.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile.Constraints"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfile.State.ts b/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfile.State.ts
index a4eb59e6..a4d612b9 100644
--- a/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfile.State.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfile.State.ts
@@ -16,7 +16,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.TrapezoidProfile.State", "varType": "float", "importModule": "", "selfLabel": "state", "selfType": "wpimath.trajectory.TrapezoidProfile.State"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile.State", "VAR": "position"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.TrapezoidProfile.State", "varType": "wpimath.units.units_per_second", "importModule": "", "selfLabel": "state", "selfType": "wpimath.trajectory.TrapezoidProfile.State"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile.State", "VAR": "velocity"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfile.State", "args": [{"name": "position", "type": "float"}, {"name": "velocity", "type": "wpimath.units.units_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile.State"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.TrapezoidProfile.State", "args": [{"name": "position", "type": "float"}, {"name": "velocity", "type": "wpimath.units.units_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile.State"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfile.ts b/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfile.ts
index 54f56bdf..a33a9660 100644
--- a/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfile.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfile.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrapezoidProfile"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfile", "args": [{"name": "constraints", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile.Constraints"}], "tooltip": "Constructs a TrapezoidProfile.\n\n:param constraints: The constraints on the profile, like maximum velocity.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfile.State", "args": [{"name": "trapezoidProfile", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile"}, {"name": "t", "type": "wpimath.units.seconds"}, {"name": "current", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile.State"}, {"name": "goal", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile.State"}], "tooltip": "Calculates the position and velocity for the profile at a time t where the\ncurrent state is at time t = 0.\n\n:param t: How long to advance from the current state toward the desired\n state.\n:param current: The current state.\n:param goal: The desired state when the profile is complete.\n\n:returns: The position and velocity of the profile at time t.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfile"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "trapezoidProfile", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile"}, {"name": "t", "type": "wpimath.units.seconds"}], "tooltip": "Returns true if the profile has reached the goal.\n\nThe profile has reached the goal if the time since the profile started has\nexceeded the profile's total time.\n\n:param t: The time since the beginning of the profile.\n\n:returns: True if the profile has reached the goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile", "FUNC": "isFinished"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfile"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "trapezoidProfile", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile"}, {"name": "target", "type": "float"}], "tooltip": "Returns the time left until a target distance in the profile is reached.\n\n:param target: The target distance.\n\n:returns: The time left until a target distance in the profile is reached.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile", "FUNC": "timeLeftUntil"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfile"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "trapezoidProfile", "type": "wpimath._controls._controls.trajectory.TrapezoidProfile"}], "tooltip": "Returns the total time the profile takes to reach the goal.\n\n:returns: The total time the profile takes to reach the goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile", "FUNC": "totalTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfile"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrapezoidProfile"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.TrapezoidProfile", "args": [{"name": "constraints", "type": "wpimath.trajectory.TrapezoidProfile.Constraints"}], "tooltip": "Constructs a TrapezoidProfile.\n\n:param constraints: The constraints on the profile, like maximum velocity.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.TrapezoidProfile.State", "args": [{"name": "trapezoidProfile", "type": "wpimath.trajectory.TrapezoidProfile"}, {"name": "t", "type": "wpimath.units.seconds"}, {"name": "current", "type": "wpimath.trajectory.TrapezoidProfile.State"}, {"name": "goal", "type": "wpimath.trajectory.TrapezoidProfile.State"}], "tooltip": "Calculates the position and velocity for the profile at a time t where the\ncurrent state is at time t = 0.\n\n:param t: How long to advance from the current state toward the desired\n state.\n:param current: The current state.\n:param goal: The desired state when the profile is complete.\n\n:returns: The position and velocity of the profile at time t.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfile"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "trapezoidProfile", "type": "wpimath.trajectory.TrapezoidProfile"}, {"name": "t", "type": "wpimath.units.seconds"}], "tooltip": "Returns true if the profile has reached the goal.\n\nThe profile has reached the goal if the time since the profile started has\nexceeded the profile's total time.\n\n:param t: The time since the beginning of the profile.\n\n:returns: True if the profile has reached the goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile", "FUNC": "isFinished"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfile"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "trapezoidProfile", "type": "wpimath.trajectory.TrapezoidProfile"}, {"name": "target", "type": "float"}], "tooltip": "Returns the time left until a target distance in the profile is reached.\n\n:param target: The target distance.\n\n:returns: The time left until a target distance in the profile is reached.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile", "FUNC": "timeLeftUntil"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfile"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "trapezoidProfile", "type": "wpimath.trajectory.TrapezoidProfile"}], "tooltip": "Returns the total time the profile takes to reach the goal.\n\n:returns: The total time the profile takes to reach the goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfile", "FUNC": "totalTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfile"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfileRadians.Constraints.ts b/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfileRadians.Constraints.ts
index 62ab2714..58beefbb 100644
--- a/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfileRadians.Constraints.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfileRadians.Constraints.ts
@@ -16,7 +16,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.TrapezoidProfileRadians.Constraints", "varType": "wpimath.units.radians_per_second_squared", "importModule": "", "selfLabel": "constraints", "selfType": "wpimath.trajectory.TrapezoidProfileRadians.Constraints"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians.Constraints", "VAR": "maxAcceleration"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.TrapezoidProfileRadians.Constraints", "varType": "wpimath.units.radians_per_second", "importModule": "", "selfLabel": "constraints", "selfType": "wpimath.trajectory.TrapezoidProfileRadians.Constraints"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians.Constraints", "VAR": "maxVelocity"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myConstraints"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.Constraints", "args": [{"name": "maxVelocity", "type": "wpimath.units.radians_per_second"}, {"name": "maxAcceleration", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Constructs constraints for a Trapezoid Profile.\n\n:param maxVelocity: Maximum velocity.\n:param maxAcceleration: Maximum acceleration.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians.Constraints"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myConstraints"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.TrapezoidProfileRadians.Constraints", "args": [{"name": "maxVelocity", "type": "wpimath.units.radians_per_second"}, {"name": "maxAcceleration", "type": "wpimath.units.radians_per_second_squared"}], "tooltip": "Constructs constraints for a Trapezoid Profile.\n\n:param maxVelocity: Maximum velocity.\n:param maxAcceleration: Maximum acceleration.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians.Constraints"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfileRadians.State.ts b/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfileRadians.State.ts
index c5b69e46..87406fd8 100644
--- a/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfileRadians.State.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfileRadians.State.ts
@@ -16,7 +16,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
const contents: toolboxItems.ContentsType[] = [
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.TrapezoidProfileRadians.State", "varType": "wpimath.units.radians", "importModule": "", "selfLabel": "state", "selfType": "wpimath.trajectory.TrapezoidProfileRadians.State"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians.State", "VAR": "position"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.TrapezoidProfileRadians.State", "varType": "wpimath.units.radians_per_second", "importModule": "", "selfLabel": "state", "selfType": "wpimath.trajectory.TrapezoidProfileRadians.State"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians.State", "VAR": "velocity"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.State", "args": [{"name": "position", "type": "wpimath.units.radians"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians.State"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.TrapezoidProfileRadians.State", "args": [{"name": "position", "type": "wpimath.units.radians"}, {"name": "velocity", "type": "wpimath.units.radians_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians.State"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfileRadians.ts b/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfileRadians.ts
index cec2d741..d1f55491 100644
--- a/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfileRadians.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.TrapezoidProfileRadians.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrapezoidProfileRadians"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians", "args": [{"name": "constraints", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.Constraints"}], "tooltip": "Constructs a TrapezoidProfile.\n\n:param constraints: The constraints on the profile, like maximum velocity.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.State", "args": [{"name": "trapezoidProfileRadians", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians"}, {"name": "t", "type": "wpimath.units.seconds"}, {"name": "current", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.State"}, {"name": "goal", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians.State"}], "tooltip": "Calculates the position and velocity for the profile at a time t where the\ncurrent state is at time t = 0.\n\n:param t: How long to advance from the current state toward the desired\n state.\n:param current: The current state.\n:param goal: The desired state when the profile is complete.\n\n:returns: The position and velocity of the profile at time t.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfileRadians"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "trapezoidProfileRadians", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians"}, {"name": "t", "type": "wpimath.units.seconds"}], "tooltip": "Returns true if the profile has reached the goal.\n\nThe profile has reached the goal if the time since the profile started has\nexceeded the profile's total time.\n\n:param t: The time since the beginning of the profile.\n\n:returns: True if the profile has reached the goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians", "FUNC": "isFinished"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfileRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "trapezoidProfileRadians", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians"}, {"name": "target", "type": "wpimath.units.radians"}], "tooltip": "Returns the time left until a target distance in the profile is reached.\n\n:param target: The target distance.\n\n:returns: The time left until a target distance in the profile is reached.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians", "FUNC": "timeLeftUntil"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfileRadians"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "trapezoidProfileRadians", "type": "wpimath._controls._controls.trajectory.TrapezoidProfileRadians"}], "tooltip": "Returns the total time the profile takes to reach the goal.\n\n:returns: The total time the profile takes to reach the goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians", "FUNC": "totalTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfileRadians"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrapezoidProfileRadians"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.TrapezoidProfileRadians", "args": [{"name": "constraints", "type": "wpimath.trajectory.TrapezoidProfileRadians.Constraints"}], "tooltip": "Constructs a TrapezoidProfile.\n\n:param constraints: The constraints on the profile, like maximum velocity.", "importModule": "wpimath.trajectory"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myConstraints"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.TrapezoidProfileRadians.State", "args": [{"name": "trapezoidProfileRadians", "type": "wpimath.trajectory.TrapezoidProfileRadians"}, {"name": "t", "type": "wpimath.units.seconds"}, {"name": "current", "type": "wpimath.trajectory.TrapezoidProfileRadians.State"}, {"name": "goal", "type": "wpimath.trajectory.TrapezoidProfileRadians.State"}], "tooltip": "Calculates the position and velocity for the profile at a time t where the\ncurrent state is at time t = 0.\n\n:param t: How long to advance from the current state toward the desired\n state.\n:param current: The current state.\n:param goal: The desired state when the profile is complete.\n\n:returns: The position and velocity of the profile at time t.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians", "FUNC": "calculate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfileRadians"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myState"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "bool", "args": [{"name": "trapezoidProfileRadians", "type": "wpimath.trajectory.TrapezoidProfileRadians"}, {"name": "t", "type": "wpimath.units.seconds"}], "tooltip": "Returns true if the profile has reached the goal.\n\nThe profile has reached the goal if the time since the profile started has\nexceeded the profile's total time.\n\n:param t: The time since the beginning of the profile.\n\n:returns: True if the profile has reached the goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians", "FUNC": "isFinished"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfileRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "trapezoidProfileRadians", "type": "wpimath.trajectory.TrapezoidProfileRadians"}, {"name": "target", "type": "wpimath.units.radians"}], "tooltip": "Returns the time left until a target distance in the profile is reached.\n\n:param target: The target distance.\n\n:returns: The time left until a target distance in the profile is reached.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians", "FUNC": "timeLeftUntil"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfileRadians"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.seconds", "args": [{"name": "trapezoidProfileRadians", "type": "wpimath.trajectory.TrapezoidProfileRadians"}], "tooltip": "Returns the total time the profile takes to reach the goal.\n\n:returns: The total time the profile takes to reach the goal.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.TrapezoidProfileRadians", "FUNC": "totalTime"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrapezoidProfileRadians"}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.CentripetalAccelerationConstraint.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.CentripetalAccelerationConstraint.ts
index 7233bc60..3c0c9c89 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.CentripetalAccelerationConstraint.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.CentripetalAccelerationConstraint.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCentripetalAccelerationConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.CentripetalAccelerationConstraint", "args": [{"name": "maxCentripetalAcceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.CentripetalAccelerationConstraint"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCentripetalAccelerationConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.constraint.CentripetalAccelerationConstraint", "args": [{"name": "maxCentripetalAcceleration", "type": "wpimath.units.feet_per_second_squared"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.CentripetalAccelerationConstraint", "FUNC": "fromFps"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "centripetalAccelerationConstraint", "type": "wpimath._controls._controls.constraint.CentripetalAccelerationConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.CentripetalAccelerationConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCentripetalAccelerationConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "centripetalAccelerationConstraint", "type": "wpimath._controls._controls.constraint.CentripetalAccelerationConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.CentripetalAccelerationConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCentripetalAccelerationConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCentripetalAccelerationConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.CentripetalAccelerationConstraint", "args": [{"name": "maxCentripetalAcceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.CentripetalAccelerationConstraint"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myCentripetalAccelerationConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.constraint.CentripetalAccelerationConstraint", "args": [{"name": "maxCentripetalAcceleration", "type": "wpimath.units.feet_per_second_squared"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.CentripetalAccelerationConstraint", "FUNC": "fromFps"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "centripetalAccelerationConstraint", "type": "wpimath.trajectory.constraint.CentripetalAccelerationConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.CentripetalAccelerationConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCentripetalAccelerationConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "centripetalAccelerationConstraint", "type": "wpimath.trajectory.constraint.CentripetalAccelerationConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.CentripetalAccelerationConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCentripetalAccelerationConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint.ts
index bdd5dd97..79bbd764 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.DifferentialDriveKinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}, {"name": "maxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.constraint.DifferentialDriveKinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}, {"name": "maxSpeed", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint", "FUNC": "fromFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "differentialDriveKinematicsConstraint", "type": "wpimath._controls._controls.constraint.DifferentialDriveKinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "differentialDriveKinematicsConstraint", "type": "wpimath._controls._controls.constraint.DifferentialDriveKinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}, {"name": "maxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}, {"name": "maxSpeed", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint", "FUNC": "fromFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "differentialDriveKinematicsConstraint", "type": "wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "differentialDriveKinematicsConstraint", "type": "wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveKinematicsConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint.ts
index 685d15ea..c3aeb54d 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint.ts
@@ -11,9 +11,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 3 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveVoltageConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.DifferentialDriveVoltageConstraint", "args": [{"name": "feedforward", "type": "wpimath._controls._controls.controller.SimpleMotorFeedforwardMeters"}, {"name": "kinematics", "type": "wpimath.kinematics._kinematics.DifferentialDriveKinematics"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}], "tooltip": "Creates a new DifferentialDriveVoltageConstraint.\n\n:param feedforward: A feedforward component describing the behavior of the\n drive.\n:param kinematics: A kinematics component describing the drive geometry.\n:param maxVoltage: The maximum voltage available to the motors while\n following the path. Should be somewhat less than the nominal battery\n voltage (12V) to account for \"voltage sag\" due to current draw.", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "differentialDriveVoltageConstraint", "type": "wpimath._controls._controls.constraint.DifferentialDriveVoltageConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveVoltageConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "differentialDriveVoltageConstraint", "type": "wpimath._controls._controls.constraint.DifferentialDriveVoltageConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveVoltageConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myDifferentialDriveVoltageConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint", "args": [{"name": "feedforward", "type": "wpimath.controller.SimpleMotorFeedforwardMeters"}, {"name": "kinematics", "type": "wpimath.kinematics.DifferentialDriveKinematics"}, {"name": "maxVoltage", "type": "wpimath.units.volts"}], "tooltip": "Creates a new DifferentialDriveVoltageConstraint.\n\n:param feedforward: A feedforward component describing the behavior of the\n drive.\n:param kinematics: A kinematics component describing the drive geometry.\n:param maxVoltage: The maximum voltage available to the motors while\n following the path. Should be somewhat less than the nominal battery\n voltage (12V) to account for \"voltage sag\" due to current draw.", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimpleMotorFeedforwardMeters"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveKinematics"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "differentialDriveVoltageConstraint", "type": "wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveVoltageConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "differentialDriveVoltageConstraint", "type": "wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.DifferentialDriveVoltageConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myDifferentialDriveVoltageConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.EllipticalRegionConstraint.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.EllipticalRegionConstraint.ts
index dbe227d3..0292f092 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.EllipticalRegionConstraint.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.EllipticalRegionConstraint.ts
@@ -11,11 +11,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 5 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipticalRegionConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.EllipticalRegionConstraint", "args": [{"name": "center", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "xWidth", "type": "wpimath.units.meters"}, {"name": "yWidth", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "constraint", "type": "wpimath._controls._controls.constraint.TrajectoryConstraint"}], "tooltip": "Constructs a new EllipticalRegionConstraint.\n\n:deprecated: Use constructor taking Ellipse2d instead.\n\n:param center: The center of the ellipse in which to enforce the constraint.\n:param xWidth: The width of the ellipse in which to enforce the constraint.\n:param yWidth: The height of the ellipse in which to enforce the constraint.\n:param rotation: The rotation to apply to all radii around the origin.\n:param constraint: The constraint to enforce when the robot is within the\n region.", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.EllipticalRegionConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipticalRegionConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.EllipticalRegionConstraint", "args": [{"name": "ellipse", "type": "wpimath.geometry._geometry.Ellipse2d"}, {"name": "constraint", "type": "wpimath._controls._controls.constraint.TrajectoryConstraint"}], "tooltip": "Constructs a new EllipticalRegionConstraint.\n\n:param ellipse: The ellipse in which to enforce the constraint.\n:param constraint: The constraint to enforce when the robot is within the\n region.", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.EllipticalRegionConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipticalRegionConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.constraint.EllipticalRegionConstraint", "args": [{"name": "center", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "xWidth", "type": "wpimath.units.feet"}, {"name": "yWidth", "type": "wpimath.units.feet"}, {"name": "rotation", "type": "wpimath.geometry._geometry.Rotation2d"}, {"name": "constraint", "type": "wpimath._controls._controls.constraint.TrajectoryConstraint"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.EllipticalRegionConstraint", "FUNC": "fromFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "ellipticalRegionConstraint", "type": "wpimath._controls._controls.constraint.EllipticalRegionConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.EllipticalRegionConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipticalRegionConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "ellipticalRegionConstraint", "type": "wpimath._controls._controls.constraint.EllipticalRegionConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.EllipticalRegionConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipticalRegionConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipticalRegionConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.EllipticalRegionConstraint", "args": [{"name": "center", "type": "wpimath.geometry.Translation2d"}, {"name": "xWidth", "type": "wpimath.units.meters"}, {"name": "yWidth", "type": "wpimath.units.meters"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}, {"name": "constraint", "type": "wpimath.trajectory.constraint.TrajectoryConstraint"}], "tooltip": "Constructs a new EllipticalRegionConstraint.\n\n:deprecated: Use constructor taking Ellipse2d instead.\n\n:param center: The center of the ellipse in which to enforce the constraint.\n:param xWidth: The width of the ellipse in which to enforce the constraint.\n:param yWidth: The height of the ellipse in which to enforce the constraint.\n:param rotation: The rotation to apply to all radii around the origin.\n:param constraint: The constraint to enforce when the robot is within the\n region.", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.EllipticalRegionConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipticalRegionConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.EllipticalRegionConstraint", "args": [{"name": "ellipse", "type": "wpimath.geometry.Ellipse2d"}, {"name": "constraint", "type": "wpimath.trajectory.constraint.TrajectoryConstraint"}], "tooltip": "Constructs a new EllipticalRegionConstraint.\n\n:param ellipse: The ellipse in which to enforce the constraint.\n:param constraint: The constraint to enforce when the robot is within the\n region.", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.EllipticalRegionConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipse2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myEllipticalRegionConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.constraint.EllipticalRegionConstraint", "args": [{"name": "center", "type": "wpimath.geometry.Translation2d"}, {"name": "xWidth", "type": "wpimath.units.feet"}, {"name": "yWidth", "type": "wpimath.units.feet"}, {"name": "rotation", "type": "wpimath.geometry.Rotation2d"}, {"name": "constraint", "type": "wpimath.trajectory.constraint.TrajectoryConstraint"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.EllipticalRegionConstraint", "FUNC": "fromFeet"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRotation2d"}}}}, "ARG4": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "ellipticalRegionConstraint", "type": "wpimath.trajectory.constraint.EllipticalRegionConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.EllipticalRegionConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipticalRegionConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "ellipticalRegionConstraint", "type": "wpimath.trajectory.constraint.EllipticalRegionConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.EllipticalRegionConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEllipticalRegionConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.MaxVelocityConstraint.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.MaxVelocityConstraint.ts
index 5f2a3ae1..0059af50 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.MaxVelocityConstraint.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.MaxVelocityConstraint.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMaxVelocityConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.MaxVelocityConstraint", "args": [{"name": "maxVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Constructs a new MaxVelocityConstraint.\n\n:param maxVelocity: The max velocity.", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MaxVelocityConstraint"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMaxVelocityConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.constraint.MaxVelocityConstraint", "args": [{"name": "maxVelocity", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MaxVelocityConstraint", "FUNC": "fromFps"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "maxVelocityConstraint", "type": "wpimath._controls._controls.constraint.MaxVelocityConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MaxVelocityConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMaxVelocityConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "maxVelocityConstraint", "type": "wpimath._controls._controls.constraint.MaxVelocityConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MaxVelocityConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMaxVelocityConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMaxVelocityConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.MaxVelocityConstraint", "args": [{"name": "maxVelocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Constructs a new MaxVelocityConstraint.\n\n:param maxVelocity: The max velocity.", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MaxVelocityConstraint"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMaxVelocityConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.constraint.MaxVelocityConstraint", "args": [{"name": "maxVelocity", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MaxVelocityConstraint", "FUNC": "fromFps"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "maxVelocityConstraint", "type": "wpimath.trajectory.constraint.MaxVelocityConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MaxVelocityConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMaxVelocityConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "maxVelocityConstraint", "type": "wpimath.trajectory.constraint.MaxVelocityConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MaxVelocityConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMaxVelocityConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint.ts
index 5e16f7b9..155d86aa 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveKinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.MecanumDriveKinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "maxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveKinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.constraint.MecanumDriveKinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.MecanumDriveKinematics"}, {"name": "maxSpeed", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint", "FUNC": "fromFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "mecanumDriveKinematicsConstraint", "type": "wpimath._controls._controls.constraint.MecanumDriveKinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "mecanumDriveKinematicsConstraint", "type": "wpimath._controls._controls.constraint.MecanumDriveKinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveKinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "maxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMecanumDriveKinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics.MecanumDriveKinematics"}, {"name": "maxSpeed", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint", "FUNC": "fromFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematics"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "mecanumDriveKinematicsConstraint", "type": "wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "mecanumDriveKinematicsConstraint", "type": "wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.MecanumDriveKinematicsConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMecanumDriveKinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.RectangularRegionConstraint.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.RectangularRegionConstraint.ts
index 7ea95a85..79fef3e9 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.RectangularRegionConstraint.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.RectangularRegionConstraint.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangularRegionConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.RectangularRegionConstraint", "args": [{"name": "bottomLeftPoint", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "topRightPoint", "type": "wpimath.geometry._geometry.Translation2d"}, {"name": "constraint", "type": "wpimath._controls._controls.constraint.TrajectoryConstraint"}], "tooltip": "Constructs a new RectangularRegionConstraint.\n\n:deprecated: Use constructor taking Rectangle2d instead.\n\n:param bottomLeftPoint: The bottom left point of the rectangular region in\n which to enforce the constraint.\n:param topRightPoint: The top right point of the rectangular region in which\n to enforce the constraint.\n:param constraint: The constraint to enforce when the robot is within the\n region.", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.RectangularRegionConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangularRegionConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.RectangularRegionConstraint", "args": [{"name": "rectangle", "type": "wpimath.geometry._geometry.Rectangle2d"}, {"name": "constraint", "type": "wpimath._controls._controls.constraint.TrajectoryConstraint"}], "tooltip": "Constructs a new RectangularRegionConstraint.\n\n:param rectangle: The rectangular region in which to enforce the constraint.\n:param constraint: The constraint to enforce when the robot is within the\n region.", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.RectangularRegionConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "rectangularRegionConstraint", "type": "wpimath._controls._controls.constraint.RectangularRegionConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.RectangularRegionConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangularRegionConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "rectangularRegionConstraint", "type": "wpimath._controls._controls.constraint.RectangularRegionConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.RectangularRegionConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangularRegionConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangularRegionConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.RectangularRegionConstraint", "args": [{"name": "bottomLeftPoint", "type": "wpimath.geometry.Translation2d"}, {"name": "topRightPoint", "type": "wpimath.geometry.Translation2d"}, {"name": "constraint", "type": "wpimath.trajectory.constraint.TrajectoryConstraint"}], "tooltip": "Constructs a new RectangularRegionConstraint.\n\n:deprecated: Use constructor taking Rectangle2d instead.\n\n:param bottomLeftPoint: The bottom left point of the rectangular region in\n which to enforce the constraint.\n:param topRightPoint: The top right point of the rectangular region in which\n to enforce the constraint.\n:param constraint: The constraint to enforce when the robot is within the\n region.", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.RectangularRegionConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTranslation2d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRectangularRegionConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.RectangularRegionConstraint", "args": [{"name": "rectangle", "type": "wpimath.geometry.Rectangle2d"}, {"name": "constraint", "type": "wpimath.trajectory.constraint.TrajectoryConstraint"}], "tooltip": "Constructs a new RectangularRegionConstraint.\n\n:param rectangle: The rectangular region in which to enforce the constraint.\n:param constraint: The constraint to enforce when the robot is within the\n region.", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.RectangularRegionConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangle2d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "rectangularRegionConstraint", "type": "wpimath.trajectory.constraint.RectangularRegionConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.RectangularRegionConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangularRegionConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "rectangularRegionConstraint", "type": "wpimath.trajectory.constraint.RectangularRegionConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.RectangularRegionConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRectangularRegionConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint.ts
index 38a90ca0..a77e7a02 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.SwerveDrive2KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.constraint.SwerveDrive2KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive2Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint", "FUNC": "fromFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "swerveDrive2KinematicsConstraint", "type": "wpimath._controls._controls.constraint.SwerveDrive2KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "swerveDrive2KinematicsConstraint", "type": "wpimath._controls._controls.constraint.SwerveDrive2KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive2Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint", "FUNC": "fromFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2Kinematics"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "swerveDrive2KinematicsConstraint", "type": "wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "swerveDrive2KinematicsConstraint", "type": "wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive2KinematicsConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive2KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint.ts
index c577c152..b42d318a 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.SwerveDrive3KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.constraint.SwerveDrive3KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive3Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint", "FUNC": "fromFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "swerveDrive3KinematicsConstraint", "type": "wpimath._controls._controls.constraint.SwerveDrive3KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "swerveDrive3KinematicsConstraint", "type": "wpimath._controls._controls.constraint.SwerveDrive3KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive3Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint", "FUNC": "fromFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3Kinematics"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "swerveDrive3KinematicsConstraint", "type": "wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "swerveDrive3KinematicsConstraint", "type": "wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive3KinematicsConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive3KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint.ts
index be3ab5ca..c08d06c7 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.SwerveDrive4KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.constraint.SwerveDrive4KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive4Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint", "FUNC": "fromFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "swerveDrive4KinematicsConstraint", "type": "wpimath._controls._controls.constraint.SwerveDrive4KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "swerveDrive4KinematicsConstraint", "type": "wpimath._controls._controls.constraint.SwerveDrive4KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive4Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint", "FUNC": "fromFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4Kinematics"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "swerveDrive4KinematicsConstraint", "type": "wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "swerveDrive4KinematicsConstraint", "type": "wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive4KinematicsConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive4KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint.ts
index 4ecdbd0a..1d1e7090 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint.ts
@@ -11,10 +11,10 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 4 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.SwerveDrive6KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath._controls._controls.constraint.SwerveDrive6KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics._kinematics.SwerveDrive6Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint", "FUNC": "fromFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "swerveDrive6KinematicsConstraint", "type": "wpimath._controls._controls.constraint.SwerveDrive6KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "swerveDrive6KinematicsConstraint", "type": "wpimath._controls._controls.constraint.SwerveDrive6KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "static", "returnType": "wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint", "args": [{"name": "kinematics", "type": "wpimath.kinematics.SwerveDrive6Kinematics"}, {"name": "maxSpeed", "type": "wpimath.units.feet_per_second"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint", "FUNC": "fromFps"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6Kinematics"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "swerveDrive6KinematicsConstraint", "type": "wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "swerveDrive6KinematicsConstraint", "type": "wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.SwerveDrive6KinematicsConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySwerveDrive6KinematicsConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.TrajectoryConstraint.MinMax.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.TrajectoryConstraint.MinMax.ts
index f262a6f3..94f64d78 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.TrajectoryConstraint.MinMax.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.TrajectoryConstraint.MinMax.ts
@@ -19,8 +19,8 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "varType": "wpimath.units.meters_per_second_squared", "importModule": "", "selfLabel": "minMax", "selfType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "VAR": "maxAcceleration"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMinMax"}}}}}},
{"kind": "block", "type": "mrc_get_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "varType": "wpimath.units.meters_per_second_squared", "importModule": "", "selfLabel": "minMax", "selfType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "VAR": "minAcceleration"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMinMax"}}}}}},
{"kind": "block", "type": "mrc_set_python_variable", "extraState": {"varKind": "instance", "moduleOrClassName": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "varType": "wpimath.units.meters_per_second_squared", "importModule": "", "selfLabel": "minMax", "selfType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "VAR": "minAcceleration"}, "inputs": {"SELF": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMinMax"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "minAcceleration", "type": "wpimath.units.meters_per_second_squared"}, {"name": "maxAcceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "minAcceleration", "type": "wpimath.units.meters_per_second_squared"}, {"name": "maxAcceleration", "type": "wpimath.units.meters_per_second_squared"}], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax"}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/class_wpimath.trajectory.constraint.TrajectoryConstraint.ts b/src/blocks/generated/class_wpimath.trajectory.constraint.TrajectoryConstraint.ts
index c3cad779..17549438 100644
--- a/src/blocks/generated/class_wpimath.trajectory.constraint.TrajectoryConstraint.ts
+++ b/src/blocks/generated/class_wpimath.trajectory.constraint.TrajectoryConstraint.ts
@@ -11,9 +11,9 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 3 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint", "args": [], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "trajectoryConstraint", "type": "wpimath._controls._controls.constraint.TrajectoryConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Returns the max velocity given the current pose and curvature.\n\n:param pose: The pose at the current point in the trajectory.\n:param curvature: The curvature at the current point in the trajectory.\n:param velocity: The velocity at the current point in the trajectory before\n constraints are applied.\n\n:returns: The absolute maximum velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath._controls._controls.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "trajectoryConstraint", "type": "wpimath._controls._controls.constraint.TrajectoryConstraint"}, {"name": "pose", "type": "wpimath.geometry._geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Returns the minimum and maximum allowable acceleration for the trajectory\ngiven pose, curvature, and speed.\n\n:param pose: The pose at the current point in the trajectory.\n:param curvature: The curvature at the current point in the trajectory.\n:param speed: The speed at the current point in the trajectory.\n\n:returns: The min and max acceleration bounds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "constructor", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint", "args": [], "tooltip": "", "importModule": "wpimath.trajectory.constraint"}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.units.meters_per_second", "args": [{"name": "trajectoryConstraint", "type": "wpimath.trajectory.constraint.TrajectoryConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "velocity", "type": "wpimath.units.meters_per_second"}], "tooltip": "Returns the max velocity given the current pose and curvature.\n\n:param pose: The pose at the current point in the trajectory.\n:param curvature: The curvature at the current point in the trajectory.\n:param velocity: The velocity at the current point in the trajectory before\n constraints are applied.\n\n:returns: The absolute maximum velocity.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint", "FUNC": "maxVelocity"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myMinMax"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "instance", "returnType": "wpimath.trajectory.constraint.TrajectoryConstraint.MinMax", "args": [{"name": "trajectoryConstraint", "type": "wpimath.trajectory.constraint.TrajectoryConstraint"}, {"name": "pose", "type": "wpimath.geometry.Pose2d"}, {"name": "curvature", "type": "wpimath.units.radians_per_meter"}, {"name": "speed", "type": "wpimath.units.meters_per_second"}], "tooltip": "Returns the minimum and maximum allowable acceleration for the trajectory\ngiven pose, curvature, and speed.\n\n:param pose: The pose at the current point in the trajectory.\n:param curvature: The curvature at the current point in the trajectory.\n:param speed: The speed at the current point in the trajectory.\n\n:returns: The min and max acceleration bounds.", "importModule": ""}, "fields": {"MODULE_OR_CLASS": "wpimath.trajectory.constraint.TrajectoryConstraint", "FUNC": "minMaxAcceleration"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTrajectoryConstraint"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose2d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/module_hal.simulation.ts b/src/blocks/generated/module_hal.simulation.ts
index 1ef77ca1..6fd662aa 100644
--- a/src/blocks/generated/module_hal.simulation.ts
+++ b/src/blocks/generated/module_hal.simulation.ts
@@ -134,11 +134,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "channel", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "findDutyCycleForChannel"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "channel", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "findEncoderForChannel"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAccelerometerActive"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAccelerometerRange"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal._wpiHal.AccelerometerRange", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAccelerometerRange"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAccelerometerRange"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.AccelerometerRange", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAccelerometerRange"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAccelerometerX"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAccelerometerY"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAccelerometerZ"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}, {"name": "data", "type": "hal._wpiHal.AddressableLEDData"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAddressableLEDData"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}, {"name": "data", "type": "hal.AddressableLEDData"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAddressableLEDData"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAddressableLEDInitialized"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAddressableLEDLength"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAddressableLEDOutputPort"}},
@@ -160,7 +160,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAnalogOutVoltage"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAnalogTriggerInitialized"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAnalogTriggerTriggerLowerBound"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerMode"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.simulation._simulation.AnalogTriggerMode", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAnalogTriggerTriggerMode"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAnalogTriggerMode"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.simulation.AnalogTriggerMode", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAnalogTriggerTriggerMode"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getAnalogTriggerTriggerUpperBound"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getCTREPCMAllSolenoids"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getCTREPCMClosedLoopEnabled"}},
@@ -178,7 +178,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getDigitalPWMDutyCycle"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getDigitalPWMInitialized"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getDigitalPWMPin"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllianceStationID"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal._wpiHal.AllianceStationID", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getDriverStationAllianceStationId"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myAllianceStationID"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.AllianceStationID", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getDriverStationAllianceStationId"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getDriverStationAutonomous"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getDriverStationDsAttached"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getDriverStationEStop"}},
@@ -205,15 +205,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getEncoderReverseDirection"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getEncoderSamplesToAverage"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getEncoderSimDevice"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "axes", "type": "hal._wpiHal.JoystickAxes"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getJoystickAxes"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickAxes"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "buttons", "type": "hal._wpiHal.JoystickButtons"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getJoystickButtons"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickButtons"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "axes", "type": "hal.JoystickAxes"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getJoystickAxes"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickAxes"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "buttons", "type": "hal.JoystickButtons"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getJoystickButtons"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickButtons"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int, int]", "args": [{"name": "stick", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getJoystickCounts"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "descriptor", "type": "hal._wpiHal.JoystickDescriptor"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getJoystickDescriptor"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickDescriptor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "descriptor", "type": "hal.JoystickDescriptor"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getJoystickDescriptor"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickDescriptor"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int, int]", "args": [{"name": "joystickNum", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getJoystickOutputs"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "povs", "type": "hal._wpiHal.JoystickPOVs"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getJoystickPOVs"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickPOVs"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "info", "type": "hal._wpiHal.MatchInfo"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getMatchInfo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchInfo"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "povs", "type": "hal.JoystickPOVs"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getJoystickPOVs"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickPOVs"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "info", "type": "hal.MatchInfo"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getMatchInfo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchInfo"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getNextNotifierTimeout"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "arr", "type": "hal.simulation._simulation.NotifierInfo"}, {"name": "size", "type": "int"}], "tooltip": "Gets detailed information about each notifier.\n\n:param arr: array of information to be filled\n:param size: size of arr\n\n:returns: Number of notifiers; note: may be larger than passed-in size", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getNotifierInfo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifierInfo"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "arr", "type": "hal.simulation.NotifierInfo"}, {"name": "size", "type": "int"}], "tooltip": "Gets detailed information about each notifier.\n\n:param arr: array of information to be filled\n:param size: size of arr\n\n:returns: Number of notifiers; note: may be larger than passed-in size", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getNotifierInfo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myNotifierInfo"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getNumNotifiers"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getPWMInitialized"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getPWMPeriodScale"}},
@@ -228,7 +228,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getPowerDistributionVoltage"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getProgramStarted"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getREVPHAllSolenoids"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHCompressorConfigType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal._wpiHal.REVPHCompressorConfigType", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getREVPHCompressorConfigType"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myREVPHCompressorConfigType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.REVPHCompressorConfigType", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getREVPHCompressorConfigType"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getREVPHCompressorCurrent"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getREVPHCompressorOn"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getREVPHInitialized"}},
@@ -242,7 +242,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getRoboRioCPUTemp"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "str", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getRoboRioComments"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getRoboRioFPGAButton"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHAL_RadioLEDState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal._wpiHal.HAL_RadioLEDState", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getRoboRioRadioLEDState"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHAL_RadioLEDState"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.HAL_RadioLEDState", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getRoboRioRadioLEDState"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "str", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getRoboRioSerialNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getRoboRioTeamNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "getRoboRioUserActive3V3"}},
@@ -272,11 +272,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "isTimingPaused"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "notifyDriverStationNewData"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "pauseTiming"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimCB"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.simulation._simulation.SimCB", "args": [{"name": "callback", "type": "Callable[[], None]"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "registerSimPeriodicAfterCallback"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimCB"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.simulation._simulation.SimCB", "args": [{"name": "callback", "type": "Callable[[], None]"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "registerSimPeriodicBeforeCallback"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimValueCB"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.simulation._simulation.SimValueCB", "args": [{"name": "value", "type": "hal._wpiHal.SimValue"}, {"name": "callback", "type": "Callable[[str, int, hal._wpiHal.SimValueDirection, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "registerSimValueChangedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimValueCB"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.simulation._simulation.SimValueCB", "args": [{"name": "device", "type": "hal._wpiHal.SimDevice"}, {"name": "callback", "type": "Callable[[str, int, hal._wpiHal.SimValueDirection, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "registerSimValueCreatedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimValueCB"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.simulation._simulation.SimValueCB", "args": [{"name": "value", "type": "hal._wpiHal.SimValue"}, {"name": "callback", "type": "Callable[[str, int, hal._wpiHal.SimValueDirection, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback for HAL_SimValueReset(). The callback is called with the\nold value.\n\n:param value: simulated value handle\n:param param: parameter for callback\n:param callback: callback\n:param initialNotify: ignored (present for consistency)", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "registerSimValueResetCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myValue], None]"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimCB"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.simulation.SimCB", "args": [{"name": "callback", "type": "Callable[[], None]"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "registerSimPeriodicAfterCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimCB"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.simulation.SimCB", "args": [{"name": "callback", "type": "Callable[[], None]"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "registerSimPeriodicBeforeCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimValueCB"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.simulation.SimValueCB", "args": [{"name": "value", "type": "hal.SimValue"}, {"name": "callback", "type": "Callable[[str, int, hal._wpiHal.SimValueDirection, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "registerSimValueChangedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimValueCB"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.simulation.SimValueCB", "args": [{"name": "device", "type": "hal.SimDevice"}, {"name": "callback", "type": "Callable[[str, int, hal._wpiHal.SimValueDirection, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "registerSimValueCreatedCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimDevice"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySimValueCB"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.simulation.SimValueCB", "args": [{"name": "value", "type": "hal.SimValue"}, {"name": "callback", "type": "Callable[[str, int, hal._wpiHal.SimValueDirection, hal._wpiHal.Value], None]"}, {"name": "initialNotify", "type": "bool"}], "tooltip": "Register a callback for HAL_SimValueReset(). The callback is called with the\nold value.\n\n:param value: simulated value handle\n:param param: parameter for callback\n:param callback: callback\n:param initialNotify: ignored (present for consistency)", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "registerSimValueResetCallback"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySimValue"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCallable"}}}}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "resetAccelerometerData"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "resetAddressableLEDData"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "resetAllSimData"}},
@@ -301,11 +301,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "restartTiming"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "resumeTiming"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "active", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAccelerometerActive"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "range", "type": "hal._wpiHal.AccelerometerRange"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAccelerometerRange"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAccelerometerRange"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "range", "type": "hal.AccelerometerRange"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAccelerometerRange"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAccelerometerRange"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "x", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAccelerometerX"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "y", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAccelerometerY"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "z", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAccelerometerZ"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "data", "type": "hal._wpiHal.AddressableLEDData"}, {"name": "length", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAddressableLEDData"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "data", "type": "hal.AddressableLEDData"}, {"name": "length", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAddressableLEDData"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "initialized", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAddressableLEDInitialized"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "length", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAddressableLEDLength"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "outputPort", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAddressableLEDOutputPort"}},
@@ -326,7 +326,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "voltage", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAnalogOutVoltage"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "initialized", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAnalogTriggerInitialized"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "triggerLowerBound", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAnalogTriggerTriggerLowerBound"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "triggerMode", "type": "hal.simulation._simulation.AnalogTriggerMode"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAnalogTriggerTriggerMode"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerMode"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "triggerMode", "type": "hal.simulation.AnalogTriggerMode"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAnalogTriggerTriggerMode"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerMode"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "triggerUpperBound", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setAnalogTriggerTriggerUpperBound"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "values", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setCTREPCMAllSolenoids"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "closedLoopEnabled", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setCTREPCMClosedLoopEnabled"}},
@@ -343,7 +343,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "dutyCycle", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setDigitalPWMDutyCycle"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "initialized", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setDigitalPWMInitialized"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "pin", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setDigitalPWMPin"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "allianceStationId", "type": "hal._wpiHal.AllianceStationID"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setDriverStationAllianceStationId"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllianceStationID"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "allianceStationId", "type": "hal.AllianceStationID"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setDriverStationAllianceStationId"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAllianceStationID"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "autonomous", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setDriverStationAutonomous"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "dsAttached", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setDriverStationDsAttached"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "eStop", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setDriverStationEStop"}},
@@ -367,25 +367,25 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "samplesToAverage", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setEncoderSamplesToAverage"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "name", "type": "str"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setEventName"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "message", "type": "str"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setGameSpecificMessage"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "axes", "type": "hal._wpiHal.JoystickAxes"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickAxes"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickAxes"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "axes", "type": "hal.JoystickAxes"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickAxes"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickAxes"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "stick", "type": "int"}, {"name": "axis", "type": "int"}, {"name": "value", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickAxis"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "stick", "type": "int"}, {"name": "count", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickAxisCount"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "stick", "type": "int"}, {"name": "axis", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickAxisType"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "stick", "type": "int"}, {"name": "button", "type": "int"}, {"name": "state", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickButton"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "stick", "type": "int"}, {"name": "count", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickButtonCount"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "buttons", "type": "hal._wpiHal.JoystickButtons"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickButtons"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickButtons"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "buttons", "type": "hal.JoystickButtons"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickButtons"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickButtons"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "stick", "type": "int"}, {"name": "buttons", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickButtonsValue"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "descriptor", "type": "hal._wpiHal.JoystickDescriptor"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickDescriptor"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickDescriptor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "descriptor", "type": "hal.JoystickDescriptor"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickDescriptor"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickDescriptor"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "stick", "type": "int"}, {"name": "isXbox", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickIsXbox"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "stick", "type": "int"}, {"name": "name", "type": "str"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickName"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "outputs", "type": "int"}, {"name": "leftRumble", "type": "int"}, {"name": "rightRumble", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickOutputs"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "stick", "type": "int"}, {"name": "pov", "type": "int"}, {"name": "value", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickPOV"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "stick", "type": "int"}, {"name": "count", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickPOVCount"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "povs", "type": "hal._wpiHal.JoystickPOVs"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickPOVs"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickPOVs"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "joystickNum", "type": "int"}, {"name": "povs", "type": "hal.JoystickPOVs"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickPOVs"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickPOVs"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "stick", "type": "int"}, {"name": "type", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setJoystickType"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "info", "type": "hal._wpiHal.MatchInfo"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setMatchInfo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchInfo"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "info", "type": "hal.MatchInfo"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setMatchInfo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchInfo"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "matchNumber", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setMatchNumber"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "type", "type": "hal._wpiHal.MatchType"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setMatchType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "type", "type": "hal.MatchType"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setMatchType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchType"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "initialized", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setPWMInitialized"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "periodScale", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setPWMPeriodScale"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "position", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setPWMPosition"}},
@@ -399,7 +399,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "voltage", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setPowerDistributionVoltage"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setProgramStarted"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "values", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setREVPHAllSolenoids"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "configType", "type": "hal._wpiHal.REVPHCompressorConfigType"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setREVPHCompressorConfigType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHCompressorConfigType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "configType", "type": "hal.REVPHCompressorConfigType"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setREVPHCompressorConfigType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHCompressorConfigType"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "compressorCurrent", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setREVPHCompressorCurrent"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "compressorOn", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setREVPHCompressorOn"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "solenoidInitialized", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setREVPHInitialized"}},
@@ -414,7 +414,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "cpuTemp", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRoboRioCPUTemp"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "comments", "type": "str"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRoboRioComments"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "fPGAButton", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRoboRioFPGAButton"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "state", "type": "hal._wpiHal.HAL_RadioLEDState"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRoboRioRadioLEDState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHAL_RadioLEDState"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "state", "type": "hal.HAL_RadioLEDState"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRoboRioRadioLEDState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHAL_RadioLEDState"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "serialNumber", "type": "str"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRoboRioSerialNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "teamNumber", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRoboRioTeamNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "userActive3V3", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRoboRioUserActive3V3"}},
@@ -431,7 +431,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "userVoltage6V", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRoboRioUserVoltage6V"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "vInCurrent", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRoboRioVInCurrent"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "vInVoltage", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRoboRioVInVoltage"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "type", "type": "hal._wpiHal.RuntimeType"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRuntimeType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRuntimeType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "type", "type": "hal.RuntimeType"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setRuntimeType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRuntimeType"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "active", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setSPIAccelerometerActive"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "range", "type": "int"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setSPIAccelerometerRange"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "index", "type": "int"}, {"name": "x", "type": "float"}], "tooltip": "", "importModule": "hal.simulation"}, "fields": {"MODULE_OR_CLASS": "hal.simulation", "FUNC": "setSPIAccelerometerX"}},
diff --git a/src/blocks/generated/module_hal.ts b/src/blocks/generated/module_hal.ts
index 1f8d59ae..5594975c 100644
--- a/src/blocks/generated/module_hal.ts
+++ b/src/blocks/generated/module_hal.ts
@@ -40,7 +40,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int, int, int]", "args": [{"name": "messageIDMask", "type": "int"}, {"name": "data", "type": "Buffer"}], "tooltip": "Receives a CAN message.\n\n:param out: messageID store for the received message ID\n:param in: messageIDMask the message ID mask to look for\n:param out: data data output (8 bytes)\n:param out: dataSize data length (0-8 bytes)\n:param out: timeStamp the packet received timestamp (based off of\n CLOCK_MONOTONIC)\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "CAN_ReceiveMessage"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "messageID", "type": "int"}, {"name": "data", "type": "Buffer"}, {"name": "periodMs", "type": "int"}], "tooltip": "Sends a CAN message.\n\n:param in: messageID the CAN ID to send\n:param in: data the data to send (0-8 bytes)\n:param in: dataSize the size of the data to send (0-8 bytes)\n:param in: periodMs the period to repeat the packet at. Use\n HAL_CAN_SEND_PERIOD_NO_REPEAT to not repeat.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "CAN_SendMessage"}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[hal._wpiHal.HAL_RadioLEDState, int]", "args": [], "tooltip": "Get the state of the \"Radio\" LED.\n\n:param out: status the error code, or 0 for success\n\n:returns: The state of the LED.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "HAL_GetRadioLEDState"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "state", "type": "hal._wpiHal.HAL_RadioLEDState"}], "tooltip": "Set the state of the \"Radio\" LED.\n\n:param state: The state to set the LED to.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "HAL_SetRadioLEDState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHAL_RadioLEDState"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "state", "type": "hal.HAL_RadioLEDState"}], "tooltip": "Set the state of the \"Radio\" LED.\n\n:param state: The state to set the LED to.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "HAL_SetRadioLEDState"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHAL_RadioLEDState"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [], "tooltip": "Allocates a DO PWM Generator.\n\n:param out: status Error status variable. 0 on success.\n\n:returns: the allocated digital PWM handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "allocateDigitalPWM"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}], "tooltip": "Calibrates the analog gyro.\n\nThis happens by calculating the average value of the gyro over 5 seconds, and\nsetting that as the center. Note that this call blocks for 5 seconds to\nperform this.\n\n:param in: handle the gyro handle\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "calibrateAnalogGyro"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "notifierHandle", "type": "int"}], "tooltip": "Cancels the next notifier alarm.\n\nThis does not cause HAL_WaitForNotifierAlarm to return.\n\n:param in: notifierHandle the notifier handle\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "cancelNotifierAlarm"}},
@@ -51,7 +51,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "channel", "type": "int"}], "tooltip": "Checks if a DIO channel is valid.\n\n:param channel: the channel number to check\n\n:returns: true if the channel is valid, otherwise false", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "checkDIOChannel"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "channel", "type": "int"}], "tooltip": "Checks if a pwm channel is valid.\n\n:param channel: the channel to check\n\n:returns: true if the channel is valid, otherwise false", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "checkPWMChannel"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "channel", "type": "int"}], "tooltip": "Checks if a PowerDistribution channel is valid.\n\n:param handle: the module handle\n:param channel: the channel to check\n\n:returns: true if the channel is valid, otherwise false", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "checkPowerDistributionChannel"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "module", "type": "int"}, {"name": "type", "type": "hal._wpiHal.PowerDistributionType"}], "tooltip": "Checks if a PowerDistribution module is valid.\n\n:param module: the module to check\n:param type: the type of module\n\n:returns: true if the module is valid, otherwise false", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "checkPowerDistributionModule"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "module", "type": "int"}, {"name": "type", "type": "hal.PowerDistributionType"}], "tooltip": "Checks if a PowerDistribution module is valid.\n\n:param module: the module to check\n:param type: the type of module\n\n:returns: true if the module is valid, otherwise false", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "checkPowerDistributionModule"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionType"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "module", "type": "int"}], "tooltip": "Checks if a PH module (CAN ID) is valid.\n\n:param in: module the module to check\n\n:returns: true if the module is valid, otherwise false", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "checkREVPHModuleNumber"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "channel", "type": "int"}], "tooltip": "Checks if a solenoid channel number is valid.\n\n:param in: channel the channel to check\n\n:returns: true if the channel is valid, otherwise false", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "checkREVPHSolenoidChannel"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "channel", "type": "int"}], "tooltip": "Checks if a relay channel is valid.\n\n:param channel: the channel to check\n\n:returns: true if the channel is valid, otherwise false", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "checkRelayChannel"}},
@@ -66,11 +66,11 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}], "tooltip": "Clears any PowerDistribution sticky faults.\n\n:param in: handle the module handle\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "clearPowerDistributionStickyFaults"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}], "tooltip": "Clears the sticky faults.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "clearREVPHStickyFaults"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}], "tooltip": "Clears the receive buffer of the serial port.\n\n:param in: handle the serial port handle\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "clearSerial"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "port", "type": "hal._wpiHal.I2CPort"}], "tooltip": "Closes an I2C port\n\n:param port: The I2C port, 0 for the on-board, 1 for the MXP.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "closeI2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2CPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}], "tooltip": "Closes the SPI port.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for MXP", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "closeSPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "port", "type": "hal.I2CPort"}], "tooltip": "Closes an I2C port\n\n:param port: The I2C port, 0 for the on-board, 1 for the MXP.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "closeI2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2CPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "port", "type": "hal.SPIPort"}], "tooltip": "Closes the SPI port.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for MXP", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "closeSPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "handle", "type": "int"}], "tooltip": "Closes a serial port.\n\n:param in: handle the serial port handle to close", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "closeSerial"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "csToSclkTicks", "type": "int"}, {"name": "stallTicks", "type": "int"}, {"name": "pow2BytesPerRead", "type": "int"}], "tooltip": "Configure the Auto SPI Stall time between reads.\n\n:param in: port The number of the port to use. 0-3 for Onboard\n CS0-CS2, 4 for MXP.\n:param in: csToSclkTicks the number of ticks to wait before asserting the\n cs pin\n:param in: stallTicks the number of ticks to stall for\n:param in: pow2BytesPerRead the number of bytes to read before stalling\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "configureSPIAutoStall"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}, {"name": "handleType", "type": "hal._wpiHal.HandleEnum"}, {"name": "version", "type": "int"}], "tooltip": "Create a handle for a specific index, type and version.\n\nNote the version is not checked on the roboRIO.\n\n:param index: the index\n:param handleType: the handle type\n:param version: the handle version\n\n:returns: the created handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "createHandle"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHandleEnum"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}, {"name": "csToSclkTicks", "type": "int"}, {"name": "stallTicks", "type": "int"}, {"name": "pow2BytesPerRead", "type": "int"}], "tooltip": "Configure the Auto SPI Stall time between reads.\n\n:param in: port The number of the port to use. 0-3 for Onboard\n CS0-CS2, 4 for MXP.\n:param in: csToSclkTicks the number of ticks to wait before asserting the\n cs pin\n:param in: stallTicks the number of ticks to stall for\n:param in: pow2BytesPerRead the number of bytes to read before stalling\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "configureSPIAutoStall"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "index", "type": "int"}, {"name": "handleType", "type": "hal.HandleEnum"}, {"name": "version", "type": "int"}], "tooltip": "Create a handle for a specific index, type and version.\n\nNote the version is not checked on the roboRIO.\n\n:param index: the index\n:param handleType: the handle type\n:param version: the handle version\n\n:returns: the created handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "createHandle"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHandleEnum"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "channel", "type": "int"}, {"name": "module", "type": "int"}], "tooltip": "Create a port handle.\n\n:param channel: the channel\n:param module: the module\n\n:returns: port handle for the module and channel", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "createPortHandle"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "channel", "type": "int"}], "tooltip": "Create a port handle for SPI.\n\n:param channel: the SPI channel\n\n:returns: port handle for the channel", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "createPortHandleForSPI"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}], "tooltip": "Disables a termination character for reads.\n\n:param in: handle the serial port handle\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "disableSerialTermination"}},
@@ -80,7 +80,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "index", "type": "int"}], "tooltip": "Fire a single solenoid shot.\n\n:param in: handle the PCM handle\n:param in: index solenoid index\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "fireCTREPCMOneShot"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "index", "type": "int"}, {"name": "durMs", "type": "int"}], "tooltip": "Fire a single solenoid shot for the specified duration.\n\n:param in: handle the PH handle\n:param in: index solenoid index\n:param in: durMs shot duration in ms\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "fireREVPHOneShot"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}], "tooltip": "Flushes the serial write buffer out to the port.\n\n:param in: handle the serial port handle\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "flushSerial"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}], "tooltip": "Immediately forces an SPI read to happen.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "forceSPIAutoRead"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}], "tooltip": "Immediately forces an SPI read to happen.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "forceSPIAutoRead"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "handle", "type": "int"}], "tooltip": "Free the Addressable LED Handle.\n\n:param in: handle the Addressable LED handle to free", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "freeAddressableLED"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "handle", "type": "int"}], "tooltip": "Frees an analog gyro.\n\n:param handle: the gyro handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "freeAnalogGyro"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "analogPortHandle", "type": "int"}], "tooltip": "Frees an analog input port.\n\n:param analogPortHandle: Handle to the analog port.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "freeAnalogInputPort"}},
@@ -94,14 +94,14 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "pwmPortHandle", "type": "int"}], "tooltip": "Frees a PWM port.\n\n:param in: pwmPortHandle the pwm handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "freePWMPort"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "handle", "type": "int"}], "tooltip": "Frees a PH handle.\n\n:param in: handle the PH handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "freeREVPH"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "relayPortHandle", "type": "int"}], "tooltip": "Frees a relay port.\n\n:param relayPortHandle: the relay handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "freeRelayPort"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}], "tooltip": "Frees an SPI automatic accumulator.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "freeSPIAuto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}], "tooltip": "Frees an SPI automatic accumulator.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "freeSPIAuto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [], "tooltip": "Gets the x-axis acceleration.\n\nThis is a floating point value in units of 1 g-force.\n\n:returns: the X acceleration", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAccelerometerX"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [], "tooltip": "Gets the y-axis acceleration.\n\nThis is a floating point value in units of 1 g-force.\n\n:returns: the Y acceleration", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAccelerometerY"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [], "tooltip": "Gets the z-axis acceleration.\n\nThis is a floating point value in units of 1 g-force.\n\n:returns: the Z acceleration", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAccelerometerZ"}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "analogPortHandle", "type": "int"}], "tooltip": "Read the number of accumulated values.\n\nRead the count of the accumulated values since the accumulator was last\nReset().\n\n:param in: analogPortHandle Handle to the analog port.\n:param out: status Error status variable. 0 on success.\n\n:returns: The number of times samples from the channel were accumulated.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAccumulatorCount"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int, int]", "args": [{"name": "analogPortHandle", "type": "int"}], "tooltip": "Read the accumulated value and the number of accumulated values atomically.\n\nThis function reads the value and count from the FPGA atomically.\nThis can be used for averaging.\n\n:param in: analogPortHandle Handle to the analog port.\n:param in: value Pointer to the 64-bit accumulated output.\n:param in: count Pointer to the number of accumulation cycles.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAccumulatorOutput"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "analogPortHandle", "type": "int"}], "tooltip": "Read the accumulated value.\n\nRead the value that has been accumulating on channel 1.\nThe accumulator is attached after the oversample and average engine.\n\n:param in: analogPortHandle Handle to the analog port.\n:param out: status Error status variable. 0 on success.\n\n:returns: The 64-bit value accumulated since the last Reset().", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAccumulatorValue"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "axes", "type": "hal._wpiHal.JoystickAxes"}, {"name": "povs", "type": "hal._wpiHal.JoystickPOVs"}, {"name": "buttons", "type": "hal._wpiHal.JoystickButtons"}], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAllJoystickData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickAxes"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickPOVs"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickButtons"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "axes", "type": "hal.JoystickAxes"}, {"name": "povs", "type": "hal.JoystickPOVs"}, {"name": "buttons", "type": "hal.JoystickButtons"}], "tooltip": "", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAllJoystickData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickAxes"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickPOVs"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickButtons"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[hal._wpiHal.AllianceStationID, int]", "args": [], "tooltip": "Gets the current alliance station ID.\n\n:param out: status the error code, or 0 for success\n\n:returns: the alliance station ID", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAllianceStation"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "analogPortHandle", "type": "int"}], "tooltip": "Gets the number of averaging bits.\n\nThis gets the number of averaging bits from the FPGA. The actual number of\naveraged samples is 2**bits. The averaging is done automatically in the FPGA.\n\n:param in: analogPortHandle Handle to the analog port to use.\n:param out: status the error code, or 0 for success\n\n:returns: Bits to average.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAnalogAverageBits"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "analogPortHandle", "type": "int"}], "tooltip": "Gets a sample from the output of the oversample and average engine for the\nchannel.\n\nThe sample is 12-bit + the value configured in SetOversampleBits().\nThe value configured in SetAverageBits() will cause this value to be averaged\n2**bits number of samples. This is not a sliding window. The sample will not\nchange until 2**(OversampleBits + AverageBits) samples have been acquired\nfrom the module on this channel. Use GetAverageVoltage() to get the analog\nvalue in calibrated units.\n\n:param in: analogPortHandle Handle to the analog port to use.\n:param out: status the error code, or 0 for success\n\n:returns: A sample from the oversample and average engine for the channel.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAnalogAverageValue"}}}}},
@@ -117,7 +117,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [], "tooltip": "Gets the current sample rate.\n\nThis assumes one entry in the scan list.\nThis is a global setting for the Athena and effects all channels.\n\n:param out: status the error code, or 0 for success\n\n:returns: Sample rate.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAnalogSampleRate"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "analogTriggerHandle", "type": "int"}], "tooltip": "Get the FPGA index for the AnalogTrigger.\n\n:param in: analogTriggerHandle the trigger handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the FPGA index", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAnalogTriggerFPGAIndex"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "analogTriggerHandle", "type": "int"}], "tooltip": "Returns the InWindow output of the analog trigger.\n\nTrue if the analog input is between the upper and lower limits.\n\n:param in: analogTriggerHandle the trigger handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the InWindow output of the analog trigger", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAnalogTriggerInWindow"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "analogTriggerHandle", "type": "int"}, {"name": "type", "type": "hal._wpiHal.AnalogTriggerType"}], "tooltip": "Gets the state of the analog trigger output.\n\n:param in: analogTriggerHandle the trigger handle\n:param in: type the type of trigger to trigger on\n:param out: status Error status variable. 0 on success.\n\n:returns: the state of the analog trigger output", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAnalogTriggerOutput"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "analogTriggerHandle", "type": "int"}, {"name": "type", "type": "hal.AnalogTriggerType"}], "tooltip": "Gets the state of the analog trigger output.\n\n:param in: analogTriggerHandle the trigger handle\n:param in: type the type of trigger to trigger on\n:param out: status Error status variable. 0 on success.\n\n:returns: the state of the analog trigger output", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAnalogTriggerOutput"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "analogTriggerHandle", "type": "int"}], "tooltip": "Returns the TriggerState output of the analog trigger.\n\nTrue if above upper limit.\nFalse if below lower limit.\nIf in Hysteresis, maintain previous state.\n\n:param in: analogTriggerHandle the trigger handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the TriggerState output of the analog trigger", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAnalogTriggerTriggerState"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "analogPortHandle", "type": "int"}], "tooltip": "Gets a sample straight from the channel on this module.\n\nThe sample is a 12-bit value representing the 0V to 5V range of the A/D\nconverter in the module. The units are in A/D converter codes. Use\nGetVoltage() to get the analog value in calibrated units.\n\n:param in: analogPortHandle Handle to the analog port to use.\n:param out: status the error code, or 0 for success\n\n:returns: A sample straight from the channel on this module.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAnalogValue"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "analogPortHandle", "type": "int"}, {"name": "rawValue", "type": "int"}], "tooltip": "Get the analog voltage from a raw value.\n\n:param in: analogPortHandle Handle to the analog port the values were read\n from.\n:param in: rawValue The raw analog value\n:param out: status Error status variable. 0 on success.\n\n:returns: The voltage relating to the value", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getAnalogValueToVolts"}}}}},
@@ -143,7 +143,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Gets a bitmask of solenoid values.\n\n:param in: handle the PCM handle\n:param out: status Error status variable. 0 on success.\n\n:returns: Bitmask containing the state of the solenoids. The LSB represents\n solenoid 0.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getCTREPCMSolenoids"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "str", "args": [], "tooltip": "Returns the comments from the roboRIO web interface.\n\n:param out: comments The comments string. Free with WPI_FreeString", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getComments"}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [], "tooltip": "Gets the number of times the system has been disabled due to communication\nerrors with the Driver Station.\n\n:returns: number of disables due to communication errors.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getCommsDisableCount"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "controlWord", "type": "hal._wpiHal.ControlWord"}], "tooltip": "Gets the current control word of the driver station.\n\nThe control word contains the robot state.\n\n:param controlWord: the control word (out)\n\n:returns: the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getControlWord"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlWord"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "controlWord", "type": "hal.ControlWord"}], "tooltip": "Gets the current control word of the driver station.\n\nThe control word contains the robot state.\n\n:param controlWord: the control word (out)\n\n:returns: the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getControlWord"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myControlWord"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "counterHandle", "type": "int"}], "tooltip": "Reads the current counter value.\n\nReads the value at this instant. It may still be running, so it reflects the\ncurrent value. Next time it is read, it might have a different value.\n\n:param in: counterHandle the counter handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the current counter value", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getCounter"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "counterHandle", "type": "int"}], "tooltip": "Gets the last direction the counter value changed.\n\n:param in: counterHandle the counter handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the last direction the counter value changed", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getCounterDirection"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "counterHandle", "type": "int"}], "tooltip": "Gets the Period of the most recent count.\n\nReturns the time interval of the most recent count. This can be used for\nvelocity calculations to determine shaft speed.\n\n:param in: counterHandle the counter handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the period of the last two pulses in units of seconds", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getCounterPeriod"}}}}},
@@ -178,18 +178,18 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "filterIndex", "type": "int"}], "tooltip": "Gets the filter period for the specified filter index.\n\nGets the filter period in FPGA cycles. Even though there are 2 different\nfilter index domains (MXP vs HDR), ignore that distinction for now since it\ncomplicates the interface. Set status to NiFpga_Status_SoftwareFault if the\nfilter values mismatch.\n\n:param in: filterIndex the filter index, 0 - 2\n:param out: status Error status variable. 0 on success.\n\n:returns: The number of FPGA cycles of the filter period.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getFilterPeriod"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "dioPortHandle", "type": "int"}], "tooltip": "Reads the filter index from the FPGA.\n\nGets the filter index used to filter out short pulses.\n\n:param in: dioPortHandle the digital port handle\n:param out: status Error status variable. 0 on success.\n\n:returns: filterIndex the filter index (Must be in the range 0 - 3, where 0\n means \"none\" and 1 - 3 means filter # filterIndex - 1)", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getFilterSelect"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}], "tooltip": "Get the handle index from a handle.\n\n:param handle: the handle\n\n:returns: the index", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getHandleIndex"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHandleEnum"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal._wpiHal.HandleEnum", "args": [{"name": "handle", "type": "int"}], "tooltip": "Get the handle type from a handle.\n\n:param handle: the handle\n\n:returns: the type", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getHandleType"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "enumType", "type": "hal._wpiHal.HandleEnum"}, {"name": "version", "type": "int"}], "tooltip": "Get if the handle is a correct type and version.\n\nNote the version is not checked on the roboRIO.\n\n:param handle: the handle\n:param enumType: the type to check\n:param version: the handle version to check\n\n:returns: true if the handle is proper version and type, otherwise\n false.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getHandleTypedIndex"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHandleEnum"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "joystickNum", "type": "int"}, {"name": "axes", "type": "hal._wpiHal.JoystickAxes"}], "tooltip": "Gets the axes of a specific joystick.\n\n:param joystickNum: the joystick number\n:param axes: the axes values (output)\n\n:returns: the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getJoystickAxes"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickAxes"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myHandleEnum"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.HandleEnum", "args": [{"name": "handle", "type": "int"}], "tooltip": "Get the handle type from a handle.\n\n:param handle: the handle\n\n:returns: the type", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getHandleType"}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "enumType", "type": "hal.HandleEnum"}, {"name": "version", "type": "int"}], "tooltip": "Get if the handle is a correct type and version.\n\nNote the version is not checked on the roboRIO.\n\n:param handle: the handle\n:param enumType: the type to check\n:param version: the handle version to check\n\n:returns: true if the handle is proper version and type, otherwise\n false.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getHandleTypedIndex"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHandleEnum"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "joystickNum", "type": "int"}, {"name": "axes", "type": "hal.JoystickAxes"}], "tooltip": "Gets the axes of a specific joystick.\n\n:param joystickNum: the joystick number\n:param axes: the axes values (output)\n\n:returns: the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getJoystickAxes"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickAxes"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "joystickNum", "type": "int"}, {"name": "axis", "type": "int"}], "tooltip": "Gets the type of a specific joystick axis.\n\nThis is device specific, and different depending on what system input type\nthe joystick uses.\n\n:param joystickNum: the joystick number\n:param axis: the axis number\n\n:returns: the enumerated axis type", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getJoystickAxisType"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "joystickNum", "type": "int"}, {"name": "buttons", "type": "hal._wpiHal.JoystickButtons"}], "tooltip": "Gets the buttons of a specific joystick.\n\n:param joystickNum: the joystick number\n:param buttons: the button values (output)\n\n:returns: the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getJoystickButtons"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickButtons"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "joystickNum", "type": "int"}, {"name": "desc", "type": "hal._wpiHal.JoystickDescriptor"}], "tooltip": "Retrieves the Joystick Descriptor for particular slot.\n\n:param joystickNum: the joystick number\n:param out: desc descriptor (data transfer object) to fill in. desc is\n filled in regardless of success. In other words, if\n descriptor is not available, desc is filled in with\n default values matching the init-values in Java and C++\n Driver Station for when caller requests a too-large\n joystick index.\n\n:returns: error code reported from Network Comm back-end. Zero is good,\n nonzero is bad.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getJoystickDescriptor"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickDescriptor"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "joystickNum", "type": "int"}, {"name": "buttons", "type": "hal.JoystickButtons"}], "tooltip": "Gets the buttons of a specific joystick.\n\n:param joystickNum: the joystick number\n:param buttons: the button values (output)\n\n:returns: the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getJoystickButtons"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickButtons"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "joystickNum", "type": "int"}, {"name": "desc", "type": "hal.JoystickDescriptor"}], "tooltip": "Retrieves the Joystick Descriptor for particular slot.\n\n:param joystickNum: the joystick number\n:param out: desc descriptor (data transfer object) to fill in. desc is\n filled in regardless of success. In other words, if\n descriptor is not available, desc is filled in with\n default values matching the init-values in Java and C++\n Driver Station for when caller requests a too-large\n joystick index.\n\n:returns: error code reported from Network Comm back-end. Zero is good,\n nonzero is bad.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getJoystickDescriptor"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickDescriptor"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "joystickNum", "type": "int"}], "tooltip": "Gets whether a specific joystick is considered to be an XBox controller.\n\n:param joystickNum: the joystick number\n\n:returns: true if xbox, false otherwise", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getJoystickIsXbox"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "str", "args": [{"name": "joystickNum", "type": "int"}], "tooltip": "Gets the name of a joystick.\n\nThe returned string must be freed with WPI_FreeString\n\n:param name: the joystick name string\n:param joystickNum: the joystick number", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getJoystickName"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "joystickNum", "type": "int"}, {"name": "povs", "type": "hal._wpiHal.JoystickPOVs"}], "tooltip": "Gets the POVs of a specific joystick.\n\n:param joystickNum: the joystick number\n:param povs: the POV values (output)\n\n:returns: the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getJoystickPOVs"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickPOVs"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "joystickNum", "type": "int"}, {"name": "povs", "type": "hal.JoystickPOVs"}], "tooltip": "Gets the POVs of a specific joystick.\n\n:param joystickNum: the joystick number\n:param povs: the POV values (output)\n\n:returns: the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getJoystickPOVs"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myJoystickPOVs"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "joystickNum", "type": "int"}], "tooltip": "Gets the type of joystick connected.\n\nThis is device specific, and different depending on what system input type\nthe joystick uses.\n\n:param joystickNum: the joystick number\n\n:returns: the enumerated joystick type", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getJoystickType"}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[str, int]", "args": [], "tooltip": "Gets the last error set on this thread, or the message for the status code.\n\nIf passed HAL_USE_LAST_ERROR, the last error set on the thread will be\nreturned.\n\n:param out: status the status code, set to the error status code if input is\n HAL_USE_LAST_ERROR\n\n:returns: the error message for the code. This does not need to be freed,\n but can be overwritten by another hal call on the same thread.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getLastError"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "info", "type": "hal._wpiHal.MatchInfo"}], "tooltip": "Gets info about a specific match.\n\n:param in: info the match info (output)\n\n:returns: the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getMatchInfo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchInfo"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "info", "type": "hal.MatchInfo"}], "tooltip": "Gets info about a specific match.\n\n:param in: info the match info (output)\n\n:returns: the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getMatchInfo"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myMatchInfo"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [], "tooltip": "Return the approximate match time. The FMS does not send an official match\ntime to the robots, but does send an approximate match time. The value will\ncount down the time remaining in the current period (auto or teleop).\nWarning: This is not an official time (so it cannot be used to dispute ref\ncalls or guarantee that a function will trigger before the match ends).\n\nWhen connected to the real field, this number only changes in full integer\nincrements, and always counts down.\n\nWhen the DS is in practice mode, this number is a floating point number,\nand counts down.\n\nWhen the DS is in teleop or autonomous mode, this number is a floating\npoint number, and counts up.\n\nSimulation matches DS behavior without an FMS connected.\n\n:param out: status the error code, or 0 for success\n\n:returns: Time remaining in current match period (auto or teleop) in seconds", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getMatchTime"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "Gets the number of analog accumulators in the current system.\n\n:returns: the number of analog accumulators", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getNumAccumulators"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "Gets the number of addressable LED generators in the current system.\n\n:returns: the number of Addressable LED generators", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getNumAddressableLEDs"}},
@@ -230,38 +230,38 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "module", "type": "int"}, {"name": "channel", "type": "int"}], "tooltip": "Gets a port handle for a specific channel and module.\n\nThis is expected to be used for PCMs, as the roboRIO does not work with\nmodules anymore.\n\nThe created handle does not need to be freed.\n\n:param module: the module number\n:param channel: the channel number\n\n:returns: the created port", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPortWithModule"}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}, {"name": "currentsLength", "type": "int"}], "tooltip": "Gets the current of all channels on the PowerDistribution.\n\nThe array must be large enough to hold all channels.\n\n:param in: handle the module handle\n:param out: currents the currents\n:param in: currentsLength the length of the currents array\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionAllChannelCurrents"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}, {"name": "channel", "type": "int"}], "tooltip": "Gets the current of a specific PowerDistribution channel.\n\n:param in: handle the module handle\n:param in: channel the channel\n:param out: status Error status variable. 0 on success.\n\n:returns: the channel current (amps)", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionChannelCurrent"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "faults", "type": "hal._wpiHal.PowerDistributionFaults"}], "tooltip": "Get the current faults of the PowerDistribution.\n\nOn a CTRE PDP, this will return an object with no faults active.\n\n:param in: handle the module handle\n:param out: faults the HAL_PowerDistributionFaults to populate\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionFaults"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionFaults"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "faults", "type": "hal.PowerDistributionFaults"}], "tooltip": "Get the current faults of the PowerDistribution.\n\nOn a CTRE PDP, this will return an object with no faults active.\n\n:param in: handle the module handle\n:param out: faults the HAL_PowerDistributionFaults to populate\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionFaults"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionFaults"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Gets the module number for a specific handle.\n\n:param in: handle the module handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the module number", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionModuleNumber"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Gets the number of channels for this handle.\n\n:param in: handle the handle\n:param out: status Error status variable. 0 on success.\n\n:returns: number of channels", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionNumChannels"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "stickyFaults", "type": "hal._wpiHal.PowerDistributionStickyFaults"}], "tooltip": "Gets the sticky faults of the PowerDistribution.\n\nOn a CTRE PDP, this will return an object with no faults active.\n\n:param in: handle the module handle\n:param out: stickyFaults the HAL_PowerDistributionStickyFaults to populate\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionStickyFaults"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionStickyFaults"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "stickyFaults", "type": "hal.PowerDistributionStickyFaults"}], "tooltip": "Gets the sticky faults of the PowerDistribution.\n\nOn a CTRE PDP, this will return an object with no faults active.\n\n:param in: handle the module handle\n:param out: stickyFaults the HAL_PowerDistributionStickyFaults to populate\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionStickyFaults"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionStickyFaults"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Returns true if switchable channel is powered on.\n\nThis is a REV PDH-specific function. This function will no-op on CTRE PDP.\n\n:param in: handle the module handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the state of the switchable channel", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionSwitchableChannel"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Gets the temperature of the Power Distribution Panel.\n\nNot supported on the Rev PDH and returns 0.\n\n:param in: handle the module handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the module temperature (celsius)", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionTemperature"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Gets the total current of the PowerDistribution.\n\n:param in: handle the module handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the total current (amps)", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionTotalCurrent"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Gets the total energy of the Power Distribution Panel.\n\nNot supported on the Rev PDH and returns 0.\n\n:param in: handle the module handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the total energy (joules)", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionTotalEnergy"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Gets the total power of the Power Distribution Panel.\n\nNot supported on the Rev PDH and returns 0.\n\n:param in: handle the module handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the total power (watts)", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionTotalPower"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[hal._wpiHal.PowerDistributionType, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Gets the type of PowerDistribution module.\n\n:param in: handle the module handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the type of module", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionType"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "version", "type": "hal._wpiHal.PowerDistributionVersion"}], "tooltip": "Get the version of the PowerDistribution.\n\n:param in: handle the module handle\n:param out: version the HAL_PowerDistributionVersion to populate\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionVersion"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionVersion"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "version", "type": "hal.PowerDistributionVersion"}], "tooltip": "Get the version of the PowerDistribution.\n\n:param in: handle the module handle\n:param out: version the HAL_PowerDistributionVersion to populate\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionVersion"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionVersion"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Gets the PowerDistribution input voltage.\n\n:param in: handle the module handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the input voltage (volts)", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getPowerDistributionVoltage"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Returns the current voltage of the regulated 5v supply.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.\n\n:returns: The current voltage of the 5v supply in volts.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPH5VVoltage"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}, {"name": "channel", "type": "int"}], "tooltip": "Returns the raw voltage of the specified analog\ninput channel.\n\n:param in: handle the PH handle\n:param in: channel The analog input channel to read voltage from.\n:param out: status Error status variable. 0 on success.\n\n:returns: The voltage of the specified analog input channel in volts.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHAnalogVoltage"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Get whether compressor is turned on.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.\n\n:returns: true if the compressor is turned on", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHCompressor"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[hal._wpiHal.REVPHCompressorConfigType, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Get compressor configuration from the PH.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.\n\n:returns: compressor configuration", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHCompressorConfig"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Returns the current drawn by the compressor.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.\n\n:returns: The current drawn by the compressor in amps.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHCompressorCurrent"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "faults", "type": "hal._wpiHal.REVPHFaults"}], "tooltip": "Returns the faults currently active on the PH.\n\n:param in: handle the PH handle\n:param out: faults The faults.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHFaults"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHFaults"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "faults", "type": "hal.REVPHFaults"}], "tooltip": "Returns the faults currently active on the PH.\n\n:param in: handle the PH handle\n:param out: faults The faults.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHFaults"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHFaults"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Returns the state of the digital pressure switch.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.\n\n:returns: True if pressure switch indicates that the system is full,\n otherwise false.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHPressureSwitch"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Returns the total current drawn by all solenoids.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.\n\n:returns: Total current drawn by all solenoids in amps.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHSolenoidCurrent"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Get a bitmask of disabled solenoids.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.\n\n:returns: Bitmask indicating disabled solenoids. The LSB represents solenoid 0.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHSolenoidDisabledList"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Returns the current voltage of the solenoid power supply.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.\n\n:returns: The current voltage of the solenoid power supply in volts.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHSolenoidVoltage"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Gets a bitmask of solenoid values.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.\n\n:returns: Bitmask containing the state of the solenoids. The LSB represents\n solenoid 0.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHSolenoids"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "stickyFaults", "type": "hal._wpiHal.REVPHStickyFaults"}], "tooltip": "Returns the sticky faults currently active on this device.\n\n:param in: handle the PH handle\n:param out: stickyFaults The sticky faults.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHStickyFaults"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHStickyFaults"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "version", "type": "hal._wpiHal.REVPHVersion"}], "tooltip": "Returns the hardware and firmware versions of the PH.\n\n:param in: handle the PH handle\n:param out: version The hardware and firmware versions.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHVersion"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHVersion"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "stickyFaults", "type": "hal.REVPHStickyFaults"}], "tooltip": "Returns the sticky faults currently active on this device.\n\n:param in: handle the PH handle\n:param out: stickyFaults The sticky faults.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHStickyFaults"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHStickyFaults"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "version", "type": "hal.REVPHVersion"}], "tooltip": "Returns the hardware and firmware versions of the PH.\n\n:param in: handle the PH handle\n:param out: version The hardware and firmware versions.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHVersion"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHVersion"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Returns the current input voltage for the PH.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.\n\n:returns: The input voltage in volts.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getREVPHVoltage"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [], "tooltip": "Gets the current state of the Robot Signal Light (RSL).\n\n:param out: status the error code, or 0 for success\n\n:returns: The current state of the RSL- true if on, false if off", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getRSLState"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "relayPortHandle", "type": "int"}], "tooltip": "Gets the current state of the relay channel.\n\n:param in: relayPortHandle the relay handle\n:param out: status Error status variable. 0 on success.\n\n:returns: true for on, false for off", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getRelay"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRuntimeType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal._wpiHal.RuntimeType", "args": [], "tooltip": "Returns the runtime type of the HAL.\n\n:returns: HAL Runtime Type", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getRuntimeType"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}], "tooltip": "Gets the count of how many SPI accumulations have been missed.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP.\n:param out: status the error code, or 0 for success\n\n:returns: The number of missed accumulations.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getSPIAutoDroppedCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}], "tooltip": "Gets the stored handle for a SPI port.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for MXP\n\n:returns: The stored handle for the SPI port. 0 represents no stored\n handle.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getSPIHandle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySPIMode"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal._wpiHal.SPIMode", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}], "tooltip": "Gets the SPI Mode.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP\n\n:returns: The SPI mode currently set", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getSPIMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myRuntimeType"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.RuntimeType", "args": [], "tooltip": "Returns the runtime type of the HAL.\n\n:returns: HAL Runtime Type", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getRuntimeType"}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "port", "type": "hal.SPIPort"}], "tooltip": "Gets the count of how many SPI accumulations have been missed.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP.\n:param out: status the error code, or 0 for success\n\n:returns: The number of missed accumulations.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getSPIAutoDroppedCount"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}], "tooltip": "Gets the stored handle for a SPI port.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for MXP\n\n:returns: The stored handle for the SPI port. 0 represents no stored\n handle.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getSPIHandle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "mySPIMode"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "hal.SPIMode", "args": [{"name": "port", "type": "hal.SPIPort"}], "tooltip": "Gets the SPI Mode.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP\n\n:returns: The SPI mode currently set", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getSPIMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Gets the number of bytes currently in the read buffer.\n\n:param in: handle the serial port handle\n:param out: status the error code, or 0 for success\n\n:returns: the number of bytes in the read buffer", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getSerialBytesReceived"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}], "tooltip": "Gets the raw serial port file descriptor from a handle.\n\n:param in: handle the serial port handle\n:param out: status the error code, or 0 for success\n\n:returns: the raw port descriptor", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getSerialFD"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "str", "args": [], "tooltip": "Returns the roboRIO serial number.\n\n:param out: serialNumber The roboRIO serial number. Free with WPI_FreeString", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getSerialNumber"}},
@@ -285,7 +285,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[float, int]", "args": [], "tooltip": "Gets the roboRIO input voltage.\n\n:param out: status the error code, or 0 for success\n\n:returns: the input voltage (volts)", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "getVinVoltage"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "Returns true if HAL_SetMain() has been called.\n\n:returns: True if HAL_SetMain() has been called, false otherwise.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "hasMain"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "analogPortHandle", "type": "int"}], "tooltip": "Initialize the accumulator.\n\n:param in: analogPortHandle Handle to the analog port.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initAccumulator"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "bufferSize", "type": "int"}], "tooltip": "Initializes the SPI automatic accumulator.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2,\n 4 for MXP.\n:param in: bufferSize The accumulator buffer size.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initSPIAuto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}, {"name": "bufferSize", "type": "int"}], "tooltip": "Initializes the SPI automatic accumulator.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2,\n 4 for MXP.\n:param in: bufferSize The accumulator buffer size.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initSPIAuto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "timeout", "type": "int"}, {"name": "mode", "type": "int"}], "tooltip": "Call this to start up HAL. This is required for robot programs.\n\nThis must be called before any other HAL functions. Failure to do so will\nresult in undefined behavior, and likely segmentation faults. This means that\nany statically initialized variables in a program MUST call this function in\ntheir constructors if they want to use other HAL calls.\n\nThe common parameters are 500 for timeout and 0 for mode.\n\nThis function is safe to call from any thread, and as many times as you wish.\nIt internally guards from any reentrancy.\n\nThe applicable modes are:\n0: Try to kill an existing HAL from another program, if not successful,\nerror.\n1: Force kill a HAL from another program.\n2: Just warn if another hal exists and cannot be killed. Will likely result\nin undefined behavior.\n\n:param timeout: the initialization timeout (ms)\n:param mode: the initialization mode (see remarks)\n\n:returns: true if initialization was successful, otherwise false.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initialize"}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "outputPort", "type": "int"}], "tooltip": "Initialize Addressable LED using a PWM Digital handle.\n\n:param in: outputPort handle of the digital port for PWM\n:param out: status the error code, or 0 for success\n\n:returns: Addressable LED handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeAddressableLED"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}, {"name": "allocationLocation", "type": "str"}], "tooltip": "Initializes an analog gyro.\n\n:param in: handle handle to the analog input port\n:param in: allocationLocation the location where the allocation is occurring\n (can be null)\n:param out: status the error code, or 0 for success\n\n:returns: the initialized gyro handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeAnalogGyro"}}}}},
@@ -293,26 +293,26 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "portHandle", "type": "int"}, {"name": "allocationLocation", "type": "str"}], "tooltip": "Initializes the analog output port using the given port object.\n\n:param in: portHandle handle to the port\n:param in: allocationLocation the location where the allocation is occurring\n (can be null)\n:param out: status Error status variable. 0 on success.\n\n:returns: the created analog output handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeAnalogOutputPort"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "portHandle", "type": "int"}], "tooltip": "Initializes an analog trigger.\n\n:param in: portHandle the analog input to use for triggering\n:param out: status Error status variable. 0 on success.\n\n:returns: the created analog trigger handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeAnalogTrigger"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "dutyCycleHandle", "type": "int"}], "tooltip": "Initializes an analog trigger with a Duty Cycle input\n\n:param in: dutyCycleHandle the analog input to use for duty cycle\n:param out: status Error status variable. 0 on success.\n\n:returns: tbe created analog trigger handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeAnalogTriggerDutyCycle"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "manufacturer", "type": "hal._wpiHal.CANManufacturer"}, {"name": "deviceId", "type": "int"}, {"name": "deviceType", "type": "hal._wpiHal.CANDeviceType"}], "tooltip": "Initializes a CAN device.\n\nThese follow the FIRST standard CAN layout.\nhttps://docs.wpilib.org/en/stable/docs/software/can-devices/can-addressing.html\n\n:param in: manufacturer the can manufacturer\n:param in: deviceId the device ID (0-63)\n:param in: deviceType the device type\n:param out: status Error status variable. 0 on success.\n\n:returns: the created CAN handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeCAN"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANManufacturer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANDeviceType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "manufacturer", "type": "hal.CANManufacturer"}, {"name": "deviceId", "type": "int"}, {"name": "deviceType", "type": "hal.CANDeviceType"}], "tooltip": "Initializes a CAN device.\n\nThese follow the FIRST standard CAN layout.\nhttps://docs.wpilib.org/en/stable/docs/software/can-devices/can-addressing.html\n\n:param in: manufacturer the can manufacturer\n:param in: deviceId the device ID (0-63)\n:param in: deviceType the device type\n:param out: status Error status variable. 0 on success.\n\n:returns: the created CAN handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeCAN"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANManufacturer"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCANDeviceType"}}}}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "module", "type": "int"}, {"name": "allocationLocation", "type": "str"}], "tooltip": "Initializes a PCM.\n\n:param in: module the CAN ID to initialize\n:param in: allocationLocation the location where the allocation is occurring\n (can be null)\n:param out: status Error status variable. 0 on success.\n\n:returns: the created PH handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeCTREPCM"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int, int]", "args": [{"name": "mode", "type": "hal._wpiHal.CounterMode"}], "tooltip": "Initializes a counter.\n\n:param in: mode the counter mode\n:param in: index the compressor index (output)\n:param out: status Error status variable. 0 on success.\n\n:returns: the created handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeCounter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterMode"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int, int]", "args": [{"name": "mode", "type": "hal.CounterMode"}], "tooltip": "Initializes a counter.\n\n:param in: mode the counter mode\n:param in: index the compressor index (output)\n:param out: status Error status variable. 0 on success.\n\n:returns: the created handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeCounter"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myCounterMode"}}}}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "portHandle", "type": "int"}, {"name": "input", "type": "int"}, {"name": "allocationLocation", "type": "str"}], "tooltip": "Creates a new instance of a digital port.\n\n:param in: portHandle the port handle to create from\n:param in: input true for input, false for output\n:param in: allocationLocation the location where the allocation is occurring\n (can be null)\n:param out: status Error status variable. 0 on success.\n\n:returns: the created digital handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeDIOPort"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "digitalSourceHandle", "type": "int"}, {"name": "triggerType", "type": "hal._wpiHal.AnalogTriggerType"}], "tooltip": "Initialize a DutyCycle input.\n\n:param in: digitalSourceHandle the digital source to use (either a\n HAL_DigitalHandle or a\n HAL_AnalogTriggerHandle)\n:param in: triggerType the analog trigger type of the source if it is\n an analog trigger\n:param out: status Error status variable. 0 on success.\n\n:returns: the created duty cycle handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeDutyCycle"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "digitalSourceHandleA", "type": "int"}, {"name": "analogTriggerTypeA", "type": "hal._wpiHal.AnalogTriggerType"}, {"name": "digitalSourceHandleB", "type": "int"}, {"name": "analogTriggerTypeB", "type": "hal._wpiHal.AnalogTriggerType"}, {"name": "reverseDirection", "type": "int"}, {"name": "encodingType", "type": "hal._wpiHal.EncoderEncodingType"}], "tooltip": "Initializes an encoder.\n\n:param in: digitalSourceHandleA the A source (either a HAL_DigitalHandle or a\n HAL_AnalogTriggerHandle)\n:param in: analogTriggerTypeA the analog trigger type of the A source if it\n is an analog trigger\n:param in: digitalSourceHandleB the B source (either a HAL_DigitalHandle or a\n HAL_AnalogTriggerHandle)\n:param in: analogTriggerTypeB the analog trigger type of the B source if it\n is an analog trigger\n:param in: reverseDirection true to reverse the counting direction from\n standard, otherwise false\n:param in: encodingType the encoding type\n:param out: status Error status variable. 0 on success.\n\n:returns: the created encoder handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeEncoder"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderEncodingType"}}}}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.I2CPort"}], "tooltip": "Initializes the I2C port.\n\nOpens the port if necessary and saves the handle.\nIf opening the MXP port, also sets up the channel functions appropriately.\n\n:param in: port The port to open, 0 for the on-board, 1 for the MXP.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeI2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2CPort"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "digitalSourceHandle", "type": "int"}, {"name": "triggerType", "type": "hal.AnalogTriggerType"}], "tooltip": "Initialize a DutyCycle input.\n\n:param in: digitalSourceHandle the digital source to use (either a\n HAL_DigitalHandle or a\n HAL_AnalogTriggerHandle)\n:param in: triggerType the analog trigger type of the source if it is\n an analog trigger\n:param out: status Error status variable. 0 on success.\n\n:returns: the created duty cycle handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeDutyCycle"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "digitalSourceHandleA", "type": "int"}, {"name": "analogTriggerTypeA", "type": "hal.AnalogTriggerType"}, {"name": "digitalSourceHandleB", "type": "int"}, {"name": "analogTriggerTypeB", "type": "hal.AnalogTriggerType"}, {"name": "reverseDirection", "type": "int"}, {"name": "encodingType", "type": "hal.EncoderEncodingType"}], "tooltip": "Initializes an encoder.\n\n:param in: digitalSourceHandleA the A source (either a HAL_DigitalHandle or a\n HAL_AnalogTriggerHandle)\n:param in: analogTriggerTypeA the analog trigger type of the A source if it\n is an analog trigger\n:param in: digitalSourceHandleB the B source (either a HAL_DigitalHandle or a\n HAL_AnalogTriggerHandle)\n:param in: analogTriggerTypeB the analog trigger type of the B source if it\n is an analog trigger\n:param in: reverseDirection true to reverse the counting direction from\n standard, otherwise false\n:param in: encodingType the encoding type\n:param out: status Error status variable. 0 on success.\n\n:returns: the created encoder handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeEncoder"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}, "ARG5": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderEncodingType"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.I2CPort"}], "tooltip": "Initializes the I2C port.\n\nOpens the port if necessary and saves the handle.\nIf opening the MXP port, also sets up the channel functions appropriately.\n\n:param in: port The port to open, 0 for the on-board, 1 for the MXP.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeI2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2CPort"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [], "tooltip": "Initializes an interrupt.\n\n:param out: status Error status variable. 0 on success.\n\n:returns: the created interrupt handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeInterrupts"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [], "tooltip": "Initializes a notifier.\n\nA notifier is an FPGA controller timer that triggers at requested intervals\nbased on the FPGA time. This can be used to make precise control loops.\n\n:param out: status Error status variable. 0 on success.\n\n:returns: the created notifier", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeNotifier"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "portHandle", "type": "int"}, {"name": "allocationLocation", "type": "str"}], "tooltip": "Initializes a PWM port.\n\n:param in: portHandle the port to initialize\n:param in: allocationLocation the location where the allocation is occurring\n (can be null)\n:param out: status Error status variable. 0 on success.\n\n:returns: the created pwm handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializePWMPort"}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "moduleNumber", "type": "int"}, {"name": "type", "type": "hal._wpiHal.PowerDistributionType"}, {"name": "allocationLocation", "type": "str"}], "tooltip": "Initializes a Power Distribution Panel.\n\n:param in: moduleNumber the module number to initialize\n:param in: type the type of module to initialize\n:param in: allocationLocation the location where the allocation is occurring\n:param out: status Error status variable. 0 on success.\n\n:returns: the created PowerDistribution handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializePowerDistribution"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionType"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "moduleNumber", "type": "int"}, {"name": "type", "type": "hal.PowerDistributionType"}, {"name": "allocationLocation", "type": "str"}], "tooltip": "Initializes a Power Distribution Panel.\n\n:param in: moduleNumber the module number to initialize\n:param in: type the type of module to initialize\n:param in: allocationLocation the location where the allocation is occurring\n:param out: status Error status variable. 0 on success.\n\n:returns: the created PowerDistribution handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializePowerDistribution"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPowerDistributionType"}}}}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "module", "type": "int"}, {"name": "allocationLocation", "type": "str"}], "tooltip": "Initializes a PH.\n\n:param in: module the CAN ID to initialize\n:param in: allocationLocation the location where the allocation is occurring\n (can be null)\n:param out: status Error status variable. 0 on success.\n\n:returns: the created PH handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeREVPH"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "portHandle", "type": "int"}, {"name": "fwd", "type": "int"}, {"name": "allocationLocation", "type": "str"}], "tooltip": "Initializes a relay.\n\nNote this call will only initialize either the forward or reverse port of the\nrelay. If you need both, you will need to initialize 2 relays.\n\n:param in: portHandle the port handle to initialize\n:param in: fwd true for the forward port, false for the\n reverse port\n:param in: allocationLocation the location where the allocation is occurring\n (can be null)\n:param out: status Error status variable. 0 on success.\n\n:returns: the created relay handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeRelayPort"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}], "tooltip": "Initializes the SPI port. Opens the port if necessary and saves the handle.\n\nIf opening the MXP port, also sets up the channel functions appropriately.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS3, 4\n for MXP\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeSPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "port", "type": "hal._wpiHal.SerialPort"}], "tooltip": "Initializes a serial port.\n\nThe channels are either the onboard RS232, the MXP UART, or 2 USB ports. The\ntop port is USB1, the bottom port is USB2.\n\n:param in: port the serial port to initialize\n:param out: status the error code, or 0 for success\n\n:returns: Serial Port Handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeSerialPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "port", "type": "hal._wpiHal.SerialPort"}, {"name": "portName", "type": "str"}], "tooltip": "Initializes a serial port with a direct name.\n\nThis name is the /dev name for a specific port.\nNote these are not always consistent between roboRIO reboots.\n\n:param in: port the serial port to initialize\n:param in: portName the dev port name\n:param out: status the error code, or 0 for success\n\n:returns: Serial Port Handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeSerialPortDirect"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}], "tooltip": "Initializes the SPI port. Opens the port if necessary and saves the handle.\n\nIf opening the MXP port, also sets up the channel functions appropriately.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS3, 4\n for MXP\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeSPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "port", "type": "hal.SerialPort"}], "tooltip": "Initializes a serial port.\n\nThe channels are either the onboard RS232, the MXP UART, or 2 USB ports. The\ntop port is USB1, the bottom port is USB2.\n\n:param in: port the serial port to initialize\n:param out: status the error code, or 0 for success\n\n:returns: Serial Port Handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeSerialPort"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "port", "type": "hal.SerialPort"}, {"name": "portName", "type": "str"}], "tooltip": "Initializes a serial port with a direct name.\n\nThis name is the /dev name for a specific port.\nNote these are not always consistent between roboRIO reboots.\n\n:param in: port the serial port to initialize\n:param in: portName the dev port name\n:param out: status the error code, or 0 for success\n\n:returns: Serial Port Handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "initializeSerialPortDirect"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySerialPort"}}}}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "analogPortHandle", "type": "int"}], "tooltip": "Is the channel attached to an accumulator.\n\n:param in: analogPortHandle Handle to the analog port.\n:param out: status Error status variable. 0 on success.\n\n:returns: The analog channel is attached to an accumulator.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "isAccumulatorChannel"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [], "tooltip": "Checks if any DIO line is currently generating a pulse.\n\n:param out: status Error status variable. 0 on success.\n\n:returns: true if a pulse on some line is in progress", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "isAnyPulsing"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "bool", "args": [{"name": "handle", "type": "int"}, {"name": "version", "type": "int"}], "tooltip": "Get if the version of the handle is correct.\n\nDo not use on the roboRIO, used specifically for the sim to handle resets.\n\n:param handle: the handle\n:param version: the handle version to check\n\n:returns: true if the handle is the right version, otherwise false", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "isHandleCorrectVersion"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "bool", "args": [{"name": "handle", "type": "int"}, {"name": "handleType", "type": "hal._wpiHal.HandleEnum"}], "tooltip": "Get if the handle is a specific type.\n\n:param handle: the handle\n:param handleType: the type to check\n\n:returns: true if the type is correct, otherwise false", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "isHandleType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHandleEnum"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "bool", "args": [{"name": "handle", "type": "int"}, {"name": "handleType", "type": "hal.HandleEnum"}], "tooltip": "Get if the handle is a specific type.\n\n:param handle: the handle\n:param handleType: the type to check\n\n:returns: true if the type is correct, otherwise false", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "isHandleType"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myHandleEnum"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "dioPortHandle", "type": "int"}], "tooltip": "Checks a DIO line to see if it is currently generating a pulse.\n\n:param in: dioPortHandle the digital port handle\n:param out: status Error status variable. 0 on success.\n\n:returns: true if a pulse is in progress, otherwise false", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "isPulsing"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "pwmPortHandle", "type": "int"}], "tooltip": "Forces a PWM signal to go to 0 temporarily.\n\n:param in: pwmPortHandle the PWM handle.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "latchPWMZero"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "Loads any extra halsim libraries provided in the HALSIM_EXTENSIONS\nenvironment variable.\n\n:returns: the success state of the initialization", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "loadExtensions"}},
@@ -328,17 +328,17 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int, int]", "args": [{"name": "handle", "type": "int"}, {"name": "apiId", "type": "int"}, {"name": "data", "type": "Buffer"}], "tooltip": "Reads a CAN packet. The will continuously return the last packet received,\nwithout accounting for packet age.\n\n:param in: handle the CAN handle\n:param in: apiId the ID to read (0-1023)\n:param out: data the packet data (8 bytes)\n:param out: length the received length (0-8 bytes)\n:param out: receivedTimestamp the packet received timestamp in ms (based off\n of CLOCK_MONOTONIC)\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "readCANPacketLatest"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int, int]", "args": [{"name": "handle", "type": "int"}, {"name": "apiId", "type": "int"}, {"name": "data", "type": "Buffer"}], "tooltip": "Reads a new CAN packet.\n\nThis will only return properly once per packet received. Multiple calls\nwithout receiving another packet will return an error code.\n\n:param in: handle the CAN handle\n:param in: apiId the ID to read (0-1023)\n:param out: data the packet data (8 bytes)\n:param out: length the received length (0-8 bytes)\n:param out: receivedTimestamp the packet received timestamp in ms (based off\n of CLOCK_MONOTONIC)\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "readCANPacketNew"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int, int]", "args": [{"name": "handle", "type": "int"}, {"name": "apiId", "type": "int"}, {"name": "data", "type": "Buffer"}, {"name": "timeoutMs", "type": "int"}], "tooltip": "Reads a CAN packet. The will return the last packet received until the\npacket is older then the requested timeout. Then it will return an error\ncode.\n\n:param in: handle the CAN handle\n:param in: apiId the ID to read (0-1023)\n:param out: data the packet data (8 bytes)\n:param out: length the received length (0-8 bytes)\n:param out: receivedTimestamp the packet received timestamp in ms (based off\n of CLOCK_MONOTONIC)\n:param out: timeoutMs the timeout time for the packet\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "readCANPacketTimeout"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.I2CPort"}, {"name": "deviceAddress", "type": "int"}, {"name": "buffer", "type": "Buffer"}], "tooltip": "Executes a read transaction with the device.\n\nReads bytes from a device.\nMost I2C devices will auto-increment the register pointer internally allowing\nyou to read consecutive registers on a device in a single transaction.\n\n:param port: The I2C port, 0 for the on-board, 1 for the MXP.\n:param deviceAddress: The register to read first in the transaction.\n:param count: The number of bytes to read in the transaction.\n:param buffer: A pointer to the array of bytes to store the data read from the\n device.\n\n:returns: 0 on success or -1 on transfer abort.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "readI2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2CPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.I2CPort"}, {"name": "deviceAddress", "type": "int"}, {"name": "buffer", "type": "Buffer"}], "tooltip": "Executes a read transaction with the device.\n\nReads bytes from a device.\nMost I2C devices will auto-increment the register pointer internally allowing\nyou to read consecutive registers on a device in a single transaction.\n\n:param port: The I2C port, 0 for the on-board, 1 for the MXP.\n:param deviceAddress: The register to read first in the transaction.\n:param count: The number of bytes to read in the transaction.\n:param buffer: A pointer to the array of bytes to store the data read from the\n device.\n\n:returns: 0 on success or -1 on transfer abort.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "readI2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2CPort"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "interruptHandle", "type": "int"}], "tooltip": "Returns the timestamp for the falling interrupt that occurred most recently.\n\nThis is in the same time domain as HAL_GetFPGATime(). It only contains the\nbottom 32 bits of the timestamp. If your robot has been running for over 1\nhour, you will need to fill in the upper 32 bits yourself.\n\n:param in: interruptHandle the interrupt handle\n:param out: status Error status variable. 0 on success.\n\n:returns: timestamp in microseconds since FPGA Initialization", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "readInterruptFallingTimestamp"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "interruptHandle", "type": "int"}], "tooltip": "Returns the timestamp for the rising interrupt that occurred most recently.\n\nThis is in the same time domain as HAL_GetFPGATime(). It only contains the\nbottom 32 bits of the timestamp. If your robot has been running for over 1\nhour, you will need to fill in the upper 32 bits yourself.\n\n:param in: interruptHandle the interrupt handle\n:param out: status Error status variable. 0 on success.\n\n:returns: timestamp in microseconds since FPGA Initialization", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "readInterruptRisingTimestamp"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "buffer", "type": "Buffer"}], "tooltip": "Executes a read from the device.\n\nThis method does not write any data out to the device.\n\nMost spi devices will require a register address to be written before they\nbegin returning data.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP\n:param buffer: A pointer to the array of bytes to store the data read from the\n device.\n:param count: The number of bytes to read in the transaction. [1..7]\n\n:returns: Number of bytes read. -1 for error.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "readSPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "buffer", "type": "Buffer"}, {"name": "timeout", "type": "float"}], "tooltip": "Reads data received by the SPI accumulator. Each received data sequence\nconsists of a timestamp followed by the received data bytes, one byte per\nword (in the least significant byte). The length of each received data\nsequence is the same as the combined dataSize + zeroSize set in\nHAL_SetSPIAutoTransmitData.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2,\n 4 for MXP.\n:param out: buffer The buffer to store the data into.\n:param in: numToRead The number of words to read.\n:param in: timeout The read timeout (in seconds).\n:param out: status the error code, or 0 for success\n\n:returns: The number of words actually read.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "readSPIAutoReceivedData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}, {"name": "buffer", "type": "Buffer"}], "tooltip": "Executes a read from the device.\n\nThis method does not write any data out to the device.\n\nMost spi devices will require a register address to be written before they\nbegin returning data.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP\n:param buffer: A pointer to the array of bytes to store the data read from the\n device.\n:param count: The number of bytes to read in the transaction. [1..7]\n\n:returns: Number of bytes read. -1 for error.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "readSPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "port", "type": "hal.SPIPort"}, {"name": "buffer", "type": "Buffer"}, {"name": "timeout", "type": "float"}], "tooltip": "Reads data received by the SPI accumulator. Each received data sequence\nconsists of a timestamp followed by the received data bytes, one byte per\nword (in the least significant byte). The length of each received data\nsequence is the same as the combined dataSize + zeroSize set in\nHAL_SetSPIAutoTransmitData.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2,\n 4 for MXP.\n:param out: buffer The buffer to store the data into.\n:param in: numToRead The number of words to read.\n:param in: timeout The read timeout (in seconds).\n:param out: status the error code, or 0 for success\n\n:returns: The number of words actually read.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "readSPIAutoReceivedData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}, {"name": "buffer", "type": "Buffer"}], "tooltip": "Reads data from the serial port.\n\nWill wait for either timeout (if set), the termination char (if set), or the\ncount to be full. Whichever one comes first.\n\n:param in: handle the serial port handle\n:param out: buffer the buffer in which to store bytes read\n:param in: count the number of bytes maximum to read\n:param out: status the error code, or 0 for success\n\n:returns: the number of bytes actually read", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "readSerial"}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [], "tooltip": "Refresh the DS control word.\n\n:returns: true if updated", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "refreshDSData"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "interruptHandle", "type": "int"}], "tooltip": "Releases a waiting interrupt.\n\nThis will release both rising and falling waiters.\n\n:param in: interruptHandle the interrupt handle to release\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "releaseWaitingInterrupt"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "handle", "type": "int"}], "tooltip": "Removes the event handle from being signalled when new data arrives.\n\n:param handle: the event handle to remove", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "removeNewDataEventHandle"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "resource", "type": "int"}, {"name": "instanceNumber", "type": "int"}, {"name": "context", "type": "int"}, {"name": "feature", "type": "str"}], "tooltip": "Reports a hardware usage to the HAL.\n\n:param resource: the used resource\n:param instanceNumber: the instance of the resource\n:param context: a user specified context index\n:param feature: a user specified feature string\n\n:returns: the index of the added value in NetComm", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "report"}, "inputs": {"ARG2": {"shadow": {"type": "math_number", "fields": {"NUM": 0.0}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "interruptHandle", "type": "int"}, {"name": "digitalSourceHandle", "type": "int"}, {"name": "analogTriggerType", "type": "hal._wpiHal.AnalogTriggerType"}], "tooltip": "Requests interrupts on a specific digital source.\n\n:param in: interruptHandle the interrupt handle\n:param in: digitalSourceHandle the digital source handle (either a\n HAL_AnalogTriggerHandle or a\n HAL_DigitalHandle)\n:param in: analogTriggerType the trigger type if the source is an\n AnalogTrigger\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "requestInterrupts"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "interruptHandle", "type": "int"}, {"name": "digitalSourceHandle", "type": "int"}, {"name": "analogTriggerType", "type": "hal.AnalogTriggerType"}], "tooltip": "Requests interrupts on a specific digital source.\n\n:param in: interruptHandle the interrupt handle\n:param in: digitalSourceHandle the digital source handle (either a\n HAL_AnalogTriggerHandle or a\n HAL_DigitalHandle)\n:param in: analogTriggerType the trigger type if the source is an\n AnalogTrigger\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "requestInterrupts"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "analogPortHandle", "type": "int"}], "tooltip": "Resets the accumulator to the initial value.\n\n:param in: analogPortHandle Handle to the analog port.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "resetAccumulator"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}], "tooltip": "Resets the analog gyro value to 0.\n\n:param in: handle the gyro handle\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "resetAnalogGyro"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}], "tooltip": "Resets the Counter to zero.\n\nSets the counter value to zero. This does not effect the running state of the\ncounter, just sets the current value to zero.\n\n:param in: counterHandle the counter handle\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "resetCounter"}},
@@ -349,7 +349,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "line", "type": "str"}], "tooltip": "Sends a line to the driver station console.\n\n:param line: the line to send (null terminated)\n\n:returns: the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "sendConsoleLine"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "isError", "type": "int"}, {"name": "errorCode", "type": "int"}, {"name": "isLVCode", "type": "int"}, {"name": "details", "type": "str"}, {"name": "location", "type": "str"}, {"name": "callStack", "type": "str"}, {"name": "printMsg", "type": "int"}], "tooltip": "Sends an error to the driver station.\n\n:param isError: true for error, false for warning\n:param errorCode: the error code\n:param isLVCode: true for a LV error code, false for a standard error code\n:param details: the details of the error\n:param location: the file location of the error\n:param callStack: the callstack of the error\n:param printMsg: true to print the error message to stdout as well as to the\n DS\n\n:returns: the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "sendError"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "active", "type": "int"}], "tooltip": "Sets the accelerometer to active or standby mode.\n\nIt must be in standby mode to change any configuration.\n\n:param active: true to set to active, false for standby", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setAccelerometerActive"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "range", "type": "hal._wpiHal.AccelerometerRange"}], "tooltip": "Sets the range of values that can be measured (either 2, 4, or 8 g-forces).\n\nThe accelerometer should be in standby mode when this is called.\n\n:param range: the accelerometer range", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setAccelerometerRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAccelerometerRange"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "range", "type": "hal.AccelerometerRange"}], "tooltip": "Sets the range of values that can be measured (either 2, 4, or 8 g-forces).\n\nThe accelerometer should be in standby mode when this is called.\n\n:param range: the accelerometer range", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setAccelerometerRange"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAccelerometerRange"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "analogPortHandle", "type": "int"}, {"name": "center", "type": "int"}], "tooltip": "Set the center value of the accumulator.\n\nThe center value is subtracted from each A/D value before it is added to the\naccumulator. This is used for the center value of devices like gyros and\naccelerometers to make integration work and to take the device offset into\naccount when integrating.\n\nThis center value is based on the output of the oversampled and averaged\nsource from channel 1. Because of this, any non-zero oversample bits will\naffect the size of the value for this field.\n\n:param in: analogPortHandle Handle to the analog port.\n:param in: center The center value of the accumulator.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setAccumulatorCenter"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "analogPortHandle", "type": "int"}, {"name": "deadband", "type": "int"}], "tooltip": "Set the accumulator's deadband.\n\n:param in: analogPortHandle Handle to the analog port.\n:param in: deadband The deadband of the accumulator.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setAccumulatorDeadband"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "highTime0NanoSeconds", "type": "int"}, {"name": "lowTime0NanoSeconds", "type": "int"}, {"name": "highTime1NanoSeconds", "type": "int"}, {"name": "lowTime1NanoSeconds", "type": "int"}], "tooltip": "Sets the bit timing.\n\nBy default, the driver is set up to drive WS2812Bs, so nothing needs to\nbe set for those.\n\n:param in: handle the Addressable LED handle\n:param in: highTime0NanoSeconds high time for 0 bit (default 400ns)\n:param in: lowTime0NanoSeconds low time for 0 bit (default 900ns)\n:param in: highTime1NanoSeconds high time for 1 bit (default 900ns)\n:param in: lowTime1NanoSeconds low time for 1 bit (default 600ns)\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setAddressableLEDBitTiming"}},
@@ -374,7 +374,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "index", "type": "int"}, {"name": "durMs", "type": "int"}], "tooltip": "Set the duration for a single solenoid shot.\n\n:param in: handle the PCM handle\n:param in: index solenoid index\n:param in: durMs shot duration in ms\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCTREPCMOneShotDuration"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "mask", "type": "int"}, {"name": "values", "type": "int"}], "tooltip": "Sets solenoids on a pneumatics module.\n\n:param in: handle the PCM handle\n:param in: mask Bitmask indicating which solenoids to set. The LSB represents\n solenoid 0.\n:param in: values Bitmask indicating the desired states of the solenoids. The\n LSB represents solenoid 0.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCTREPCMSolenoids"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}, {"name": "size", "type": "int"}], "tooltip": "Sets the average sample size of a counter.\n\n:param in: counterHandle the counter handle\n:param in: size the size of samples to average\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterAverageSize"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}, {"name": "digitalSourceHandle", "type": "int"}, {"name": "analogTriggerType", "type": "hal._wpiHal.AnalogTriggerType"}], "tooltip": "Sets the source object that causes the counter to count down.\n\n:param in: counterHandle the counter handle\n:param in: digitalSourceHandle the digital source handle (either a\n HAL_AnalogTriggerHandle or a\n HAL_DigitalHandle)\n:param in: analogTriggerType the analog trigger type if the source is an\n analog trigger\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterDownSource"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}, {"name": "digitalSourceHandle", "type": "int"}, {"name": "analogTriggerType", "type": "hal.AnalogTriggerType"}], "tooltip": "Sets the source object that causes the counter to count down.\n\n:param in: counterHandle the counter handle\n:param in: digitalSourceHandle the digital source handle (either a\n HAL_AnalogTriggerHandle or a\n HAL_DigitalHandle)\n:param in: analogTriggerType the analog trigger type if the source is an\n analog trigger\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterDownSource"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}, {"name": "risingEdge", "type": "int"}, {"name": "fallingEdge", "type": "int"}], "tooltip": "Sets the down source to either detect rising edges or falling edges.\nNote that both are allowed to be set true at the same time without issues.\n\n:param in: counterHandle the counter handle\n:param in: risingEdge true to trigger on rising\n:param in: fallingEdge true to trigger on falling\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterDownSourceEdge"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}], "tooltip": "Sets directional counting mode on this counter.\n\nThe direction is determined by the B input, with counting happening with the\nA input.\n\n:param in: counterHandle the counter handle\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterExternalDirectionMode"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}, {"name": "maxPeriod", "type": "float"}], "tooltip": "Sets the maximum period where the device is still considered \"moving\".\n\nSets the maximum period where the device is considered moving. This value is\nused to determine the \"stopped\" state of the counter using the\nHAL_GetCounterStopped method.\n\n:param in: counterHandle the counter handle\n:param in: maxPeriod the maximum period where the counted device is\n considered moving in seconds\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterMaxPeriod"}},
@@ -383,7 +383,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}, {"name": "samplesToAverage", "type": "int"}], "tooltip": "Sets the Samples to Average which specifies the number of samples of the\ntimer to average when calculating the period. Perform averaging to account\nfor mechanical imperfections or as oversampling to increase resolution.\n\n:param in: counterHandle the counter handle\n:param in: samplesToAverage The number of samples to average from 1 to 127\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterSamplesToAverage"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}, {"name": "highSemiPeriod", "type": "int"}], "tooltip": "Sets Semi-period mode on this counter.\n\nThe counter counts up based on the time the input is triggered. High or Low\ndepends on the highSemiPeriod parameter.\n\n:param in: counterHandle the counter handle\n:param in: highSemiPeriod true for counting when the input is high, false for\n low\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterSemiPeriodMode"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}], "tooltip": "Sets standard up / down counting mode on this counter.\n\nUp and down counts are sourced independently from two inputs.\n\n:param in: counterHandle the counter handle\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterUpDownMode"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}, {"name": "digitalSourceHandle", "type": "int"}, {"name": "analogTriggerType", "type": "hal._wpiHal.AnalogTriggerType"}], "tooltip": "Sets the source object that causes the counter to count up.\n\n:param in: counterHandle the counter handle\n:param in: digitalSourceHandle the digital source handle (either a\n HAL_AnalogTriggerHandle or a\n HAL_DigitalHandle)\n:param in: analogTriggerType the analog trigger type if the source is an\n analog trigger\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterUpSource"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}, {"name": "digitalSourceHandle", "type": "int"}, {"name": "analogTriggerType", "type": "hal.AnalogTriggerType"}], "tooltip": "Sets the source object that causes the counter to count up.\n\n:param in: counterHandle the counter handle\n:param in: digitalSourceHandle the digital source handle (either a\n HAL_AnalogTriggerHandle or a\n HAL_DigitalHandle)\n:param in: analogTriggerType the analog trigger type if the source is an\n analog trigger\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterUpSource"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}, {"name": "risingEdge", "type": "int"}, {"name": "fallingEdge", "type": "int"}], "tooltip": "Sets the up source to either detect rising edges or falling edges.\n\nNote that both are allowed to be set true at the same time without issues.\n\n:param in: counterHandle the counter handle\n:param in: risingEdge true to trigger on rising\n:param in: fallingEdge true to trigger on falling\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterUpSourceEdge"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "counterHandle", "type": "int"}, {"name": "enabled", "type": "int"}], "tooltip": "Selects whether you want to continue updating the event timer output when\nthere are no samples captured.\n\nThe output of the event timer has a buffer of periods that are averaged and\nposted to a register on the FPGA. When the timer detects that the event\nsource has stopped (based on the MaxPeriod) the buffer of samples to be\naveraged is emptied.\n\nIf you enable the update when empty, you will be\nnotified of the stopped source and the event time will report 0 samples.\n\nIf you disable update when empty, the most recent average will remain on the\noutput until a new sample is acquired.\n\nYou will never see 0 samples output (except when there have been no events\nsince an FPGA reset) and you will likely not see the stopped bit become true\n(since it is updated at the end of an average and there are no samples to\naverage).\n\n:param in: counterHandle the counter handle\n:param in: enabled true to enable counter updating with no samples\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCounterUpdateWhenEmpty"}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "realTime", "type": "int"}, {"name": "priority", "type": "int"}], "tooltip": "Sets the thread priority for the current thread.\n\n:param in: realTime Set to true to set a real-time priority, false for\n standard priority.\n:param in: priority Priority to set the thread to. For real-time, this is\n 1-99 with 99 being highest. For non-real-time, this is\n forced to 0. See \"man 7 sched\" for more details.\n:param out: status Error status variable. 0 on success.\n\n:returns: True on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setCurrentThreadPriority"}}}}},
@@ -396,7 +396,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "rate", "type": "float"}], "tooltip": "Changes the frequency of the DO PWM generator.\n\nThe valid range is from 0.6 Hz to 19 kHz.\n\nThe frequency resolution is logarithmic.\n\n:param in: rate the frequency to output all digital output PWM signals\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setDigitalPWMRate"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "handle", "type": "int"}, {"name": "device", "type": "int"}], "tooltip": "Indicates the duty cycle is used by a simulated device.\n\n:param handle: the duty cycle handle\n:param device: simulated device handle", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setDutyCycleSimDevice"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "encoderHandle", "type": "int"}, {"name": "distancePerPulse", "type": "float"}], "tooltip": "Sets the distance traveled per encoder pulse. This is used as a scaling\nfactor for the rate and distance calls.\n\n:param in: encoderHandle the encoder handle\n:param in: distancePerPulse the distance traveled per encoder pulse (units\n user defined)\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setEncoderDistancePerPulse"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "encoderHandle", "type": "int"}, {"name": "digitalSourceHandle", "type": "int"}, {"name": "analogTriggerType", "type": "hal._wpiHal.AnalogTriggerType"}, {"name": "type", "type": "hal._wpiHal.EncoderIndexingType"}], "tooltip": "Sets the source for an index pulse on the encoder.\n\nThe index pulse can be used to cause an encoder to reset based on an external\ninput.\n\n:param in: encoderHandle the encoder handle\n:param in: digitalSourceHandle the index source handle (either a\n HAL_AnalogTriggerHandle or a\n HAL_DigitalHandle)\n:param in: analogTriggerType the analog trigger type if the source is an\n analog trigger\n:param in: type the index triggering type\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setEncoderIndexSource"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderIndexingType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "encoderHandle", "type": "int"}, {"name": "digitalSourceHandle", "type": "int"}, {"name": "analogTriggerType", "type": "hal.AnalogTriggerType"}, {"name": "type", "type": "hal.EncoderIndexingType"}], "tooltip": "Sets the source for an index pulse on the encoder.\n\nThe index pulse can be used to cause an encoder to reset based on an external\ninput.\n\n:param in: encoderHandle the encoder handle\n:param in: digitalSourceHandle the index source handle (either a\n HAL_AnalogTriggerHandle or a\n HAL_DigitalHandle)\n:param in: analogTriggerType the analog trigger type if the source is an\n analog trigger\n:param in: type the index triggering type\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setEncoderIndexSource"}, "inputs": {"ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}, "ARG3": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myEncoderIndexingType"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "encoderHandle", "type": "int"}, {"name": "maxPeriod", "type": "float"}], "tooltip": "Sets the maximum period where the device is still considered \"moving\".\n\nSets the maximum period where the device is considered moving. This value is\nused to determine the \"stopped\" state of the encoder using the\nHAL_GetEncoderStopped method.\n\n:param in: encoderHandle the encoder handle\n:param in: maxPeriod the maximum period where the counted device is\n considered moving in seconds\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setEncoderMaxPeriod"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "encoderHandle", "type": "int"}, {"name": "minRate", "type": "float"}], "tooltip": "Sets the minimum rate to be considered moving by the encoder.\n\nUnits need to match what is set by HAL_SetEncoderDistancePerPulse, with time\nas seconds.\n\n:param in: encoderHandle the encoder handle\n:param in: minRate the minimum rate to be considered moving (units are\n determined by the units passed to\n HAL_SetEncoderDistancePerPulse, time value is\n seconds)\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setEncoderMinRate"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "encoderHandle", "type": "int"}, {"name": "reverseDirection", "type": "int"}], "tooltip": "Sets if to reverse the direction of the encoder.\n\nNote that this is not a toggle. It is an absolute set.\n\n:param in: encoderHandle the encoder handle\n:param in: reverseDirection true to reverse the direction, false to not.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setEncoderReverseDirection"}},
@@ -421,15 +421,15 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}], "tooltip": "Enables the compressor in digital mode using the digital pressure switch. The\ncompressor will turn on when the pressure switch indicates that the system is\nnot full, and will turn off when the pressure switch indicates that the\nsystem is full.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setREVPHClosedLoopControlDigital"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}], "tooltip": "Disable Compressor.\n\n:param in: handle the PH handle\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setREVPHClosedLoopControlDisabled"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "minAnalogVoltage", "type": "float"}, {"name": "maxAnalogVoltage", "type": "float"}], "tooltip": "Enables the compressor in hybrid mode. This mode uses both a digital\npressure switch and an analog pressure sensor connected to analog channel 0\nto cycle the compressor.\n\nThe compressor will turn on when \\a both:\n\n- The digital pressure switch indicates the system is not full AND\n- The analog pressure sensor indicates that the pressure in the system is\nbelow the specified minimum pressure.\n\nThe compressor will turn off when \\a either:\n\n- The digital pressure switch is disconnected or indicates that the system\nis full OR\n- The pressure detected by the analog sensor is greater than the specified\nmaximum pressure.\n\n:param in: handle the PH handle\n:param in: minAnalogVoltage The compressor will turn on when the analog\n pressure sensor voltage drops below this value and the pressure switch\n indicates that the system is not full.\n:param in: maxAnalogVoltage The compressor will turn off when the analog\n pressure sensor reaches this value or the pressure switch is disconnected or\n indicates that the system is full.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setREVPHClosedLoopControlHybrid"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "config", "type": "hal._wpiHal.REVPHCompressorConfig"}], "tooltip": "Send compressor configuration to the PH.\n\n:param in: handle the PH handle\n:param in: config compressor configuration\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setREVPHCompressorConfig"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHCompressorConfig"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "config", "type": "hal.REVPHCompressorConfig"}], "tooltip": "Send compressor configuration to the PH.\n\n:param in: handle the PH handle\n:param in: config compressor configuration\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setREVPHCompressorConfig"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myREVPHCompressorConfig"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "mask", "type": "int"}, {"name": "values", "type": "int"}], "tooltip": "Sets solenoids on a PH.\n\n:param in: handle the PH handle\n:param in: mask Bitmask indicating which solenoids to set. The LSB represents\n solenoid 0.\n:param in: values Bitmask indicating the desired states of the solenoids. The\n LSB represents solenoid 0.\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setREVPHSolenoids"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "relayPortHandle", "type": "int"}, {"name": "on", "type": "int"}], "tooltip": "Sets the state of a relay output.\n\n:param in: relayPortHandle the relay handle\n:param in: on true for on, false for off\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setRelay"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "dataToSend", "type": "Buffer"}, {"name": "zeroSize", "type": "int"}], "tooltip": "Sets the data to be transmitted to the device to initiate a read.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2,\n 4 for MXP.\n:param in: dataToSend Pointer to the data to send (Gets copied for continue\n use, so no need to keep alive).\n:param in: dataSize The length of the data to send.\n:param in: zeroSize The number of zeros to send after the data.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSPIAutoTransmitData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}], "tooltip": "Sets the CS Active high for a SPI port.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSPIChipSelectActiveHigh"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}], "tooltip": "Sets the CS Active low for a SPI port.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSPIChipSelectActiveLow"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "handle", "type": "int"}], "tooltip": "Sets the stored handle for a SPI port.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP.\n:param handle: The value of the handle for the port.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSPIHandle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "mode", "type": "hal._wpiHal.SPIMode"}], "tooltip": "Sets the SPI Mode.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP\n:param mode: The SPI mode to use", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSPIMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIMode"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "speed", "type": "int"}], "tooltip": "Sets the clock speed for the SPI bus.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP\n:param speed: The speed in Hz (500KHz-10MHz)", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSPISpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}, {"name": "dataToSend", "type": "Buffer"}, {"name": "zeroSize", "type": "int"}], "tooltip": "Sets the data to be transmitted to the device to initiate a read.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2,\n 4 for MXP.\n:param in: dataToSend Pointer to the data to send (Gets copied for continue\n use, so no need to keep alive).\n:param in: dataSize The length of the data to send.\n:param in: zeroSize The number of zeros to send after the data.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSPIAutoTransmitData"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}], "tooltip": "Sets the CS Active high for a SPI port.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSPIChipSelectActiveHigh"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}], "tooltip": "Sets the CS Active low for a SPI port.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSPIChipSelectActiveLow"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "port", "type": "hal.SPIPort"}, {"name": "handle", "type": "int"}], "tooltip": "Sets the stored handle for a SPI port.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP.\n:param handle: The value of the handle for the port.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSPIHandle"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "port", "type": "hal.SPIPort"}, {"name": "mode", "type": "hal.SPIMode"}], "tooltip": "Sets the SPI Mode.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP\n:param mode: The SPI mode to use", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSPIMode"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIMode"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "port", "type": "hal.SPIPort"}, {"name": "speed", "type": "int"}], "tooltip": "Sets the clock speed for the SPI bus.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for\n MXP\n:param speed: The speed in Hz (500KHz-10MHz)", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSPISpeed"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "baud", "type": "int"}], "tooltip": "Sets the baud rate of a serial port.\n\nAny value between 0 and 0xFFFFFFFF may be used. Default is 9600.\n\n:param in: handle the serial port handle\n:param in: baud the baud rate to set\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSerialBaudRate"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "bits", "type": "int"}], "tooltip": "Sets the number of data bits on a serial port.\n\nDefaults to 8.\n\n:param in: handle the serial port handle\n:param in: bits the number of data bits (5-8)\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSerialDataBits"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "flow", "type": "int"}], "tooltip": "Sets the flow control mode of a serial port.\n\nValid values are:\n0: None (default)\n1: XON-XOFF\n2: RTS-CTS\n3: DTR-DSR\n\n:param in: handle the serial port handle\n:param in: flow the mode to set (see remarks for valid values)\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "setSerialFlowControl"}},
@@ -448,24 +448,24 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [], "tooltip": "Calls registered SimPeriodic \"after\" callbacks (only in simulation mode).\nThis should be called after user code periodic simulation functions.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "simPeriodicAfter"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [], "tooltip": "Calls registered SimPeriodic \"before\" callbacks (only in simulation mode).\nThis should be called prior to user code periodic simulation functions.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "simPeriodicBefore"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}], "tooltip": "Starts the output.\n\nThe output writes continuously.\n\n:param in: handle the Addressable LED handle\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "startAddressableLEDOutput"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "period", "type": "float"}], "tooltip": "Sets the period for automatic SPI accumulation.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP.\n:param in: period The accumulation period (seconds).\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "startSPIAutoRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "digitalSourceHandle", "type": "int"}, {"name": "analogTriggerType", "type": "hal._wpiHal.AnalogTriggerType"}, {"name": "triggerRising", "type": "int"}, {"name": "triggerFalling", "type": "int"}], "tooltip": "Starts the auto SPI accumulator on a specific trigger.\n\nNote that triggering on both rising and falling edges is a valid\nconfiguration.\n\n:param in: port The number of the port to use. 0-3 for Onboard\n CS0-CS2, 4 for MXP.\n:param in: digitalSourceHandle The trigger source to use (Either\n HAL_AnalogTriggerHandle or HAL_DigitalHandle).\n:param in: analogTriggerType The analog trigger type, if the source is an\n analog trigger.\n:param in: triggerRising Trigger on the rising edge if true.\n:param in: triggerFalling Trigger on the falling edge if true.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "startSPIAutoTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}, {"name": "period", "type": "float"}], "tooltip": "Sets the period for automatic SPI accumulation.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP.\n:param in: period The accumulation period (seconds).\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "startSPIAutoRate"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}, {"name": "digitalSourceHandle", "type": "int"}, {"name": "analogTriggerType", "type": "hal.AnalogTriggerType"}, {"name": "triggerRising", "type": "int"}, {"name": "triggerFalling", "type": "int"}], "tooltip": "Starts the auto SPI accumulator on a specific trigger.\n\nNote that triggering on both rising and falling edges is a valid\nconfiguration.\n\n:param in: port The number of the port to use. 0-3 for Onboard\n CS0-CS2, 4 for MXP.\n:param in: digitalSourceHandle The trigger source to use (Either\n HAL_AnalogTriggerHandle or HAL_DigitalHandle).\n:param in: analogTriggerType The analog trigger type, if the source is an\n analog trigger.\n:param in: triggerRising Trigger on the rising edge if true.\n:param in: triggerFalling Trigger on the falling edge if true.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "startSPIAutoTrigger"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAnalogTriggerType"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}], "tooltip": "Stops the output.\n\n:param in: handle the Addressable LED handle\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "stopAddressableLEDOutput"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "apiId", "type": "int"}], "tooltip": "Stops a repeating packet with a specific ID.\n\nThis ID is 10 bits.\n\n:param in: handle the CAN handle\n:param in: apiId the ID to stop repeating (0-1023)\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "stopCANPacketRepeating"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "notifierHandle", "type": "int"}], "tooltip": "Stops a notifier from running.\n\nThis will cause any call into HAL_WaitForNotifierAlarm to return with time =\n0.\n\n:param in: notifierHandle the notifier handle\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "stopNotifier"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}], "tooltip": "Stops an automatic SPI accumulation.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "stopSPIAuto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.I2CPort"}, {"name": "deviceAddress", "type": "int"}, {"name": "dataToSend", "type": "Buffer"}, {"name": "dataReceived", "type": "Buffer"}], "tooltip": "Generic I2C read/write transaction.\n\nThis is a lower-level interface to the I2C hardware giving you more control\nover each transaction.\n\n:param port: The I2C port, 0 for the on-board, 1 for the MXP.\n:param deviceAddress: The address of the register on the device to be\n read/written.\n:param dataToSend: Buffer of data to send as part of the transaction.\n:param sendSize: Number of bytes to send as part of the transaction.\n:param dataReceived: Buffer to read data into.\n:param receiveSize: Number of bytes to read from the device.\n\n:returns: 0 on success or -1 on transfer abort.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "transactionI2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2CPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "dataToSend", "type": "Buffer"}, {"name": "dataReceived", "type": "Buffer"}], "tooltip": "Performs an SPI send/receive transaction.\n\nThis is a lower-level interface to the spi hardware giving you more control\nover each transaction.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP\n:param dataToSend: Buffer of data to send as part of the transaction.\n:param dataReceived: Buffer to read data into.\n:param size: Number of bytes to transfer. [0..7]\n\n:returns: Number of bytes transferred, -1 for error", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "transactionSPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}], "tooltip": "Stops an automatic SPI accumulation.\n\n:param in: port The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP.\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "stopSPIAuto"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.I2CPort"}, {"name": "deviceAddress", "type": "int"}, {"name": "dataToSend", "type": "Buffer"}, {"name": "dataReceived", "type": "Buffer"}], "tooltip": "Generic I2C read/write transaction.\n\nThis is a lower-level interface to the I2C hardware giving you more control\nover each transaction.\n\n:param port: The I2C port, 0 for the on-board, 1 for the MXP.\n:param deviceAddress: The address of the register on the device to be\n read/written.\n:param dataToSend: Buffer of data to send as part of the transaction.\n:param sendSize: Number of bytes to send as part of the transaction.\n:param dataReceived: Buffer to read data into.\n:param receiveSize: Number of bytes to read from the device.\n\n:returns: 0 on success or -1 on transfer abort.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "transactionI2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2CPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}, {"name": "dataToSend", "type": "Buffer"}, {"name": "dataReceived", "type": "Buffer"}], "tooltip": "Performs an SPI send/receive transaction.\n\nThis is a lower-level interface to the spi hardware giving you more control\nover each transaction.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP\n:param dataToSend: Buffer of data to send as part of the transaction.\n:param dataReceived: Buffer to read data into.\n:param size: Number of bytes to transfer. [0..7]\n\n:returns: Number of bytes transferred, -1 for error", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "transactionSPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "notifierHandle", "type": "int"}, {"name": "triggerTime", "type": "int"}], "tooltip": "Updates the trigger time for a notifier.\n\nNote that this time is an absolute time relative to HAL_GetFPGATime()\n\n:param in: notifierHandle the notifier handle\n:param in: triggerTime the updated trigger time\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "updateNotifierAlarm"}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "interruptHandle", "type": "int"}, {"name": "timeout", "type": "float"}, {"name": "ignorePrevious", "type": "int"}], "tooltip": "Waits for the defined interrupt to occur.\n\n:param in: interruptHandle the interrupt handle\n:param in: timeout timeout in seconds\n:param in: ignorePrevious if true, ignore interrupts that happened before\n waitForInterrupt was called\n:param out: status Error status variable. 0 on success.\n\n:returns: the mask of interrupts that fired", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "waitForInterrupt"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "interruptHandle", "type": "int"}, {"name": "mask", "type": "int"}, {"name": "timeout", "type": "float"}, {"name": "ignorePrevious", "type": "int"}], "tooltip": "Waits for any interrupt covered by the mask to occur.\n\n:param in: interruptHandle the interrupt handle to use for the context\n:param in: mask the mask of interrupts to wait for\n:param in: timeout timeout in seconds\n:param in: ignorePrevious if true, ignore interrupts that happened before\n waitForInterrupt was called\n:param out: status Error status variable. 0 on success.\n\n:returns: the mask of interrupts that fired", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "waitForMultipleInterrupts"}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "notifierHandle", "type": "int"}], "tooltip": "Waits for the next alarm for the specific notifier.\n\nThis is a blocking call until either the time elapses or HAL_StopNotifier\ngets called. If the latter occurs, this function will return zero and any\nloops using this function should exit. Failing to do so can lead to\nuse-after-frees.\n\n:param in: notifierHandle the notifier handle\n:param out: status Error status variable. 0 on success.\n\n:returns: the FPGA time the notifier returned", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "waitForNotifierAlarm"}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "data", "type": "hal._wpiHal.AddressableLEDData"}, {"name": "length", "type": "int"}], "tooltip": "Sets the led output data.\n\nIf the output is enabled, this will start writing the next data cycle.\nIt is safe to call, even while output is enabled.\n\n:param in: handle the Addressable LED handle\n:param in: data the buffer to write\n:param in: length the strip length\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "writeAddressableLEDData"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "data", "type": "hal.AddressableLEDData"}, {"name": "length", "type": "int"}], "tooltip": "Sets the led output data.\n\nIf the output is enabled, this will start writing the next data cycle.\nIt is safe to call, even while output is enabled.\n\n:param in: handle the Addressable LED handle\n:param in: data the buffer to write\n:param in: length the strip length\n:param out: status the error code, or 0 for success", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "writeAddressableLEDData"}, "inputs": {"ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myAddressableLEDData"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "data", "type": "Buffer"}, {"name": "apiId", "type": "int"}], "tooltip": "Writes a packet to the CAN device with a specific ID.\n\nThis ID is 10 bits.\n\n:param in: handle the CAN handle\n:param in: data the data to write (0-8 bytes)\n:param in: length the length of data (0-8)\n:param in: apiId the ID to write (0-1023 bits)\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "writeCANPacket"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "data", "type": "Buffer"}, {"name": "apiId", "type": "int"}, {"name": "repeatMs", "type": "int"}], "tooltip": "Writes a repeating packet to the CAN device with a specific ID.\n\nThis ID is 10 bits.\n\nThe RoboRIO will automatically repeat the packet at the specified interval\n\n:param in: handle the CAN handle\n:param in: data the data to write (0-8 bytes)\n:param in: length the length of data (0-8)\n:param in: apiId the ID to write (0-1023)\n:param in: repeatMs the period to repeat in ms\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "writeCANPacketRepeating"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "handle", "type": "int"}, {"name": "length", "type": "int"}, {"name": "apiId", "type": "int"}], "tooltip": "Writes an RTR frame of the specified length to the CAN device with the\nspecific ID.\n\nBy spec, the length must be equal to the length sent by the other device,\notherwise behavior is unspecified.\n\n:param in: handle the CAN handle\n:param in: length the length of data to request (0-8)\n:param in: apiId the ID to write (0-1023)\n:param out: status Error status variable. 0 on success.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "writeCANRTRFrame"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.I2CPort"}, {"name": "deviceAddress", "type": "int"}, {"name": "dataToSend", "type": "Buffer"}], "tooltip": "Executes a write transaction with the device.\n\nWrites a single byte to a register on a device and wait until the\ntransaction is complete.\n\n:param port: The I2C port, 0 for the on-board, 1 for the MXP.\n:param deviceAddress: The address of the register on the device to be\n written.\n:param dataToSend: The byte to write to the register on the device.\n:param sendSize: Number of bytes to send.\n\n:returns: 0 on success or -1 on transfer abort.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "writeI2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2CPort"}}}}}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal._wpiHal.SPIPort"}, {"name": "dataToSend", "type": "Buffer"}], "tooltip": "Executes a write transaction with the device.\n\nWrites to a device and wait until the transaction is complete.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP\n:param dataToSend: The data to write to the register on the device.\n:param sendSize: The number of bytes to be written\n\n:returns: The number of bytes written. -1 for an error", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "writeSPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.I2CPort"}, {"name": "deviceAddress", "type": "int"}, {"name": "dataToSend", "type": "Buffer"}], "tooltip": "Executes a write transaction with the device.\n\nWrites a single byte to a register on a device and wait until the\ntransaction is complete.\n\n:param port: The I2C port, 0 for the on-board, 1 for the MXP.\n:param deviceAddress: The address of the register on the device to be\n written.\n:param dataToSend: The byte to write to the register on the device.\n:param sendSize: Number of bytes to send.\n\n:returns: 0 on success or -1 on transfer abort.", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "writeI2C"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myI2CPort"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "port", "type": "hal.SPIPort"}, {"name": "dataToSend", "type": "Buffer"}], "tooltip": "Executes a write transaction with the device.\n\nWrites to a device and wait until the transaction is complete.\n\n:param port: The number of the port to use. 0-3 for Onboard CS0-CS2, 4\n for MXP\n:param dataToSend: The data to write to the register on the device.\n:param sendSize: The number of bytes to be written\n\n:returns: The number of bytes written. -1 for an error", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "writeSPI"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "mySPIPort"}}}}}},
{"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myTuple"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "tuple[int, int]", "args": [{"name": "handle", "type": "int"}, {"name": "buffer", "type": "Buffer"}], "tooltip": "Writes data to the serial port.\n\n:param in: handle the serial port handle\n:param in: buffer the buffer to write\n:param in: count the number of bytes to write from the buffer\n:param out: status the error code, or 0 for success\n\n:returns: the number of bytes actually written", "importModule": "hal"}, "fields": {"MODULE_OR_CLASS": "hal", "FUNC": "writeSerial"}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "hal.AccelerometerRange", "importModule": "hal"}, "fields": {"ENUM_TYPE": "hal.AccelerometerRange", "ENUM_VALUE": "k2G"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "hal.AccelerometerRange", "importModule": "hal"}, "fields": {"ENUM_TYPE": "hal.AccelerometerRange", "ENUM_VALUE": "k4G"}},
diff --git a/src/blocks/generated/module_wpilib.shuffleboard.ts b/src/blocks/generated/module_wpilib.shuffleboard.ts
index 0583d8b2..e4dff08c 100644
--- a/src/blocks/generated/module_wpilib.shuffleboard.ts
+++ b/src/blocks/generated/module_wpilib.shuffleboard.ts
@@ -15,7 +15,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 33 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "str", "args": [{"name": "importance", "type": "wpilib.shuffleboard._shuffleboard.ShuffleboardEventImportance"}], "tooltip": "Returns name of the given enum.\n\n:returns: Name of the given enum.", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard", "FUNC": "shuffleboardEventImportanceName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardEventImportance"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "str", "args": [{"name": "importance", "type": "wpilib.shuffleboard.ShuffleboardEventImportance"}], "tooltip": "Returns name of the given enum.\n\n:returns: Name of the given enum.", "importModule": "wpilib.shuffleboard"}, "fields": {"MODULE_OR_CLASS": "wpilib.shuffleboard", "FUNC": "shuffleboardEventImportanceName"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myShuffleboardEventImportance"}}}}}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.shuffleboard.BuiltInLayouts", "importModule": "wpilib.shuffleboard"}, "fields": {"ENUM_TYPE": "wpilib.shuffleboard.BuiltInLayouts", "ENUM_VALUE": "kGrid"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.shuffleboard.BuiltInLayouts", "importModule": "wpilib.shuffleboard"}, "fields": {"ENUM_TYPE": "wpilib.shuffleboard.BuiltInLayouts", "ENUM_VALUE": "kList"}},
{"kind": "block", "type": "mrc_get_python_enum_value", "extraState": {"enumType": "wpilib.shuffleboard.BuiltInWidgets", "importModule": "wpilib.shuffleboard"}, "fields": {"ENUM_TYPE": "wpilib.shuffleboard.BuiltInWidgets", "ENUM_VALUE": "k3AxisAccelerometer"}},
diff --git a/src/blocks/generated/module_wpilib.simulation.ts b/src/blocks/generated/module_wpilib.simulation.ts
index cbc04a80..c7946de5 100644
--- a/src/blocks/generated/module_wpilib.simulation.ts
+++ b/src/blocks/generated/module_wpilib.simulation.ts
@@ -17,7 +17,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [], "tooltip": "Restart the simulator time.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation", "FUNC": "restartTiming"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [], "tooltip": "Resume the simulator time.", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation", "FUNC": "resumeTiming"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation", "FUNC": "setProgramStarted"}},
- {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "type", "type": "hal._wpiHal.RuntimeType"}], "tooltip": "Override the HAL runtime type (simulated/real).\n\n:param type: runtime type", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation", "FUNC": "setRuntimeType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRuntimeType"}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "type", "type": "hal.RuntimeType"}], "tooltip": "Override the HAL runtime type (simulated/real).\n\n:param type: runtime type", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation", "FUNC": "setRuntimeType"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myRuntimeType"}}}}}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "delta", "type": "wpimath.units.seconds"}], "tooltip": "Advance the simulator time and wait for all notifiers to run.\n\n:param delta: the amount to advance (in seconds)", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation", "FUNC": "stepTiming"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [{"name": "delta", "type": "wpimath.units.seconds"}], "tooltip": "Advance the simulator time and return immediately.\n\n:param delta: the amount to advance (in seconds)", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation", "FUNC": "stepTimingAsync"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "None", "args": [], "tooltip": "", "importModule": "wpilib.simulation"}, "fields": {"MODULE_OR_CLASS": "wpilib.simulation", "FUNC": "waitForProgramStart"}},
diff --git a/src/blocks/generated/module_wpimath.geometry.ts b/src/blocks/generated/module_wpimath.geometry.ts
index eaa6d471..9332c097 100644
--- a/src/blocks/generated/module_wpimath.geometry.ts
+++ b/src/blocks/generated/module_wpimath.geometry.ts
@@ -11,7 +11,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
// There are 1 blocks.
const contents: toolboxItems.ContentsType[] = [
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myfloat64[3, 3]]"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "rotation", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Applies the hat operator to a rotation vector.\n\nIt takes a rotation vector and returns the corresponding matrix\nrepresentation of the Lie algebra element (a 3x3 rotation matrix).\n\n:param rotation: The rotation vector.\n\n:returns: The rotation vector as a 3x3 rotation matrix.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry", "FUNC": "rotationVectorToMatrix"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myfloat64[3, 1]]"}}}}}}}}},
+ {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "numpy.ndarray[numpy.float64[3, 3]]", "args": [{"name": "rotation", "type": "numpy.ndarray[numpy.float64[3, 1]]"}], "tooltip": "Applies the hat operator to a rotation vector.\n\nIt takes a rotation vector and returns the corresponding matrix\nrepresentation of the Lie algebra element (a 3x3 rotation matrix).\n\n:param rotation: The rotation vector.\n\n:returns: The rotation vector as a 3x3 rotation matrix.", "importModule": "wpimath.geometry"}, "fields": {"MODULE_OR_CLASS": "wpimath.geometry", "FUNC": "rotationVectorToMatrix"}},
];
contents.push(...subcategories);
diff --git a/src/blocks/generated/module_wpimath.ts b/src/blocks/generated/module_wpimath.ts
index 8ce87ff3..243fd334 100644
--- a/src/blocks/generated/module_wpimath.ts
+++ b/src/blocks/generated/module_wpimath.ts
@@ -16,7 +16,7 @@ export function getToolboxCategory(subcategories: toolboxItems.Category[] = []):
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "x", "type": "int"}, {"name": "y", "type": "int"}], "tooltip": "Returns the largest (closest to positive infinity)\n``int`` value that is less than or equal to the algebraic quotient.\n\n:param x: the dividend\n:param y: the divisor\n\n:returns: the largest (closest to positive infinity)\n ``int`` value that is less than or equal to the algebraic quotient.", "importModule": "wpimath"}, "fields": {"MODULE_OR_CLASS": "wpimath", "FUNC": "floorDiv"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "int", "args": [{"name": "x", "type": "int"}, {"name": "y", "type": "int"}], "tooltip": "Returns the floor modulus of the ``int`` arguments.\n\nThe floor modulus is ``r = x - (floorDiv(x, y) * y)``,\nhas the same sign as the divisor ``y`` or is zero, and\nis in the range of ``-std::abs(y) < r < +std::abs(y)``.\n\n:param x: the dividend\n:param y: the divisor\n\n:returns: the floor modulus ``x - (floorDiv(x, y) * y)``", "importModule": "wpimath"}, "fields": {"MODULE_OR_CLASS": "wpimath", "FUNC": "floorMod"}},
{"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "float", "args": [{"name": "input", "type": "float"}, {"name": "minimumInput", "type": "float"}, {"name": "maximumInput", "type": "float"}], "tooltip": "Returns modulus of input.\n\n:param input: Input value to wrap.\n:param minimumInput: The minimum value expected from the input.\n:param maximumInput: The maximum value expected from the input.", "importModule": "wpimath"}, "fields": {"MODULE_OR_CLASS": "wpimath", "FUNC": "inputModulus"}},
- {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "wpimath.geometry._geometry.Pose3d", "args": [{"name": "objectInField", "type": "wpimath.geometry._geometry.Pose3d"}, {"name": "cameraToObject", "type": "wpimath.geometry._geometry.Transform3d"}, {"name": "robotToCamera", "type": "wpimath.geometry._geometry.Transform3d"}], "tooltip": "", "importModule": "wpimath"}, "fields": {"MODULE_OR_CLASS": "wpimath", "FUNC": "objectToRobotPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}}}}},
+ {"kind": "block", "type": "variables_set", "fields": {"VAR": {"name": "myPose3d"}}, "inputs": {"VALUE": {"block": {"kind": "block", "type": "mrc_call_python_function", "extraState": {"functionKind": "module", "returnType": "wpimath.geometry.Pose3d", "args": [{"name": "objectInField", "type": "wpimath.geometry.Pose3d"}, {"name": "cameraToObject", "type": "wpimath.geometry.Transform3d"}, {"name": "robotToCamera", "type": "wpimath.geometry.Transform3d"}], "tooltip": "", "importModule": "wpimath"}, "fields": {"MODULE_OR_CLASS": "wpimath", "FUNC": "objectToRobotPose"}, "inputs": {"ARG0": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myPose3d"}}}}, "ARG1": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}, "ARG2": {"block": {"type": "variables_get", "fields": {"VAR": {"name": "myTransform3d"}}}}}}}}},
];
contents.push(...subcategories);
diff --git a/src/blocks/utils/generated/python.ts b/src/blocks/utils/generated/python.ts
index 6bebc7f5..66f30538 100644
--- a/src/blocks/utils/generated/python.ts
+++ b/src/blocks/utils/generated/python.ts
@@ -1315,5 +1315,5 @@ export function getAllowedTypes(type: string): string[] {
return ['wpiutil.log._StringLogEntryImpl', 'wpiutil.log.StringLogEntry'];
}
- return [""];
+ return [type];
}